檔案讀寫是很重要的內容,這涉及到程式和本地文件的互動資訊.以下是內容.一切帝國的大廈,都在這上邊生根發芽.之前兩篇
001-函式技巧\變數\包\標準庫
002-高階函式技巧-lambda\filter\map\reduce 函式
檔案讀寫模式 :
有以下幾種,需要記住值描述
『r』讀取模式
『w』寫入模式
『x』獨佔寫入模式
『a』附加模式
『b』二進位制模式(與其他模式結合使用)
『t』文字模式(預設值,與其他模式結合使用)
『+』讀寫模式(與其他模式結合使用)
open函式
f=
open
('test.txt'
)
help(open)
檢視幫助文件
close 文件
f.close(
)
with
語法,用完了會自動關閉文件
with
open
('somefile'
)as f:
do_sometihng(f)
read()
表示讀幾個字元\位元組
看**如下:注意研究其每行的注釋
readline()
表示按行讀取,可以指定引數,表示讀前幾個字元
readlines()
讀取所有行,並返回列表
def
read_file()
:""" 讀取檔案 """
file_name =
'test.txt'
# 使用絕對路徑
file_path =
'./test.txt'
file_path2 =
'./test.txt'
# 使用普通的方式來開啟檔案
with
open
(file_path2, encoding=
'utf-8'
)as f:
# 讀檔案所有內容
rest = f.read(
)# 讀取指定的幾個內容,下邊是8個字元
rest = f.read(8)
print
(rest)
print
(f.read(8)
)#在上述內容後繼續讀8個
# 隨機讀取
f.seek(10)
#跳過字元個數
print
(f.read(5)
)# 按行讀取
rest = f.readline(8)
# 按行讀前8字元, 這個8可以刪掉
print
(rest)
print
(f.readline(8)
)# print(f.readline())
# 讀取所有行
rest = f.readlines(4)
# 按行讀前8字元
print
(len
(rest)
)for i in rest:
print
(i)# 關閉檔案
f.close(
)if __name__ ==
'__main__'
: read_file(
)
write
函式寫入開啟檔案
writelines
函式想開啟的檔案物件寫入多行內容
import random
from datetime import datetime
#------------------------寫入幾行內容
defwrite_file()
:""" 寫入檔案 """
file_name =
'write_test.txt'
# 以寫入的方式開啟檔案
f =open
(file_name,
'w')
# 寫入一行內容
f.write(
'hello'
)# 換行符\n \r \r\n
f.write(
'\n'
)# 再寫入一行內內容
f.write(
'world'
)# 關閉檔案
f.close(
)#------------------------writelines
defwrite_mult_line()
:""" 向檔案中寫入多行內容 """
file_name =
'write_mult_line.txt'
with
open
(file_name,
'w', encoding=
'utf-8'
)as f:
l =['第一行'
,'\n'
,'第二行'
,'\r\n'
,'第三行'
] f.writelines(l)
#------------------------追加形式,不覆蓋
defwrite_user_log()
:""" 記錄使用者的日誌 """
# 記錄時間 + 記錄使用者的id ;format方法
rest =
'使用者: - 訪問時間 '
.format
(random.randint(
1000
,9999
), datetime.now())
print
(rest)
# 檔名稱
file_name =
'write_user_log.txt'
with
open
(file_name,
'a', encoding=
'utf-8'
)as f:
f.write(rest)
f.write(
'\n'
)#------------------------既要讀,又要寫
defread_and_write()
:""" 先讀,再寫入 """
file_name =
'read_and_write.txt'
with
open
(file_name,
'r+'
, encoding=
'utf-8'
)as f:
read_rest = f.read(
)# 如果有1,寫入一行資料bbb
# 如果裡面沒有1,就寫一行資料 aaa
if'1'
in read_rest:
f.write(
'bbbb'
)else
: f.write(
'aaaa'
) f.write(
'\n'
)if __name__ ==
'__main__'
:# write_file()
# write_mult_line()
# write_user_log()
read_and_write(
)
之前兩篇
001-函式技巧\變數\包\標準庫
002-高階函式技巧-lambda\filter\map\reduce 函式
Python從小白到攻城獅(6) 條件與迴圈
在前面幾篇文章中,我們學習了列表 元組 字典 集合和字串等一系列python的基本資料型別和資料結構。但僅靠這些資料結構型別是無法支援整個程式執行的,在程式設計中,流程控制是程式執行的基礎,它決定了程式按照什麼方式去執行。條件語句 python的條件語句和其他語言一樣,都是用if語句實現。if語句表...
python08 檔案操作之讀
20 00 2019 1 15 周二 檔案操作 open 相當於是乙個應用程式,通過open函式向作業系統上呼叫應用程式。賦值給f然後在進行操作。f open 九門 encoding utf 8 encoding utf 8 如果不加入這一行,會因為轉碼問題報錯。利用open 開啟檔案 data f...
Python筆記(15)檔案讀與寫詳解
user bin env python coding utf 8 author berlin 注意 1 檔案只有三種模式 r代表只能讀 w代表只能寫 a代表可以在文末追加文字 2 在w模式下,開啟open檔案時,又接著write新的文字。那麼結果是 清空原檔案的內容,寫入新的內容。這種情況會造成刪庫...