解釋:f=
open
("我的檔案.txt"
,"r"
,encoding=
"utf8"
)#開啟乙個檔案(讀模式)
f.close(
)#關閉檔案
寫**過程中,很容易忘記關閉檔案,所以出現了with語句。
解釋:with
open
("我的檔案.txt"
,"r"
,encoding=
"utf8")as
file
:#自動關閉檔案
data=
file
.read(
)#讀取檔案
(data)
同時開啟多個檔案:
什麼是游標?with
open
("123.txt"
,"w"
)as f1,
open
("456.txt"
,"w"
)as f2:
f1.write(
"hello 123.txt\n"
) f2.write(
"hello 456.txt\n"
)
作業系統使用游標來讀寫檔案常用模式游標的位置影響讀寫的位置
示例:r #讀模式
w #寫模式,會清空檔案
a #追加模式
r+讀寫模式:
根據游標位置讀寫
w+寫讀模式:
會清空檔案
根據游標位置讀寫
a+追加模式:
不會清空檔案
開啟檔案之後自動將游標置於最後,而游標位置只會影響讀操作
每一次追加都會將游標置於最後
rb、wb、ab……:
以bytes型別讀取檔案
下例中的讀寫模式為r (read讀模式)
方法:f=
open
("我的檔案.txt"
,"r"
,encoding=
"utf8"
)
示例:data =
file
.read(
)# 讀取檔案全部資訊(不建議,非常占用記憶體)
data =
file
.read(5)
# 讀取5個字元
示例:with
open
("我的檔案.txt"
,"r"
,encoding=
"utf8")as
file
: data =
file
.read(
)# 讀取檔案全部資訊(不建議,非常占用記憶體)
(data)
# 輸出檔案內容
解釋:with
open
("我的檔案.txt"
,"w"
,encoding=
"utf8")as
file
:file
.write(
"hello world"
)# 寫操作(只是寫到緩衝區中)
file
.flush(
)# 將緩衝區裡的內容寫到檔案中
為什麼不直接寫入檔案?w模式會清空檔案
write(
)函式會將資料寫入緩衝區,而不是檔案中
flush(
)函式和關閉檔案時,python會將緩衝區中的資料寫入檔案。
檔案儲存在磁碟中,如果每一次寫入檔案都要訪問一次磁碟,就會頻繁請求磁碟,導致磁碟壓力過大。
重點:with
open
("我的檔案.txt"
,"r"
,encoding=
"utf8")as
file
: data=
file
.readline(
)#輸出當前行(游標會移動到下一行)
data=
file
.readlines(
)#返回乙個列表,元素為各行(不使用迭代器)
location=
file
.tell(
)#返回當前游標位置。按位元組返回(乙個中文佔3個位元組)
file
.seek(5)
#設定游標位置
num=
file
.fileno(
)#返回檔案控制代碼,唯一標識該檔案物件
#兩個程式對同乙個檔案同時呼叫,得到的控制代碼相同
(num)
truncate()截斷
示例:num=
file
.truncate(
)#截斷,刪除游標後所有字元,返回游標位置
file
.truncate(5)
#保留檔案開頭5個字元,剩下的刪除
with
open
("我的檔案.txt"
,"w"
,encoding=
"utf8")as
file
:file
.write(
"1234567890"
)file
.flush(
)file
.seek(5)
num=
file
.truncate(
)#檔案內容為12345
(num)
#結果為5
直譯器:with
open
(「我的檔案.txt」,「r」,encoding=「utf8」)
asfile
:for i in
file
(i)# 使用生成器,不占用記憶體(所以不要使用readlines()方法)
如何將變數值寫入檔案中?
將變數轉換為字串,再寫入檔案方法1:eval方式讀取檔案後,再將字串轉換為原型別
eval函式可以將字串型別的資料轉換為原來的型別。示例:如:將字串
''
轉換為字典
方法2:json方式a=}a=
str(a)
#將a強制轉換成字串(就可以方便寫入檔案中了)
(type
(a))
#輸出:
a=eval
(a)#讀取檔案後,將a轉換回原來的型別
(type
(a))
#輸出:
解釋:import jsona=}
data=json.dumps(a)
#轉換成json格式 (str型別)
data=json.loads(data)
#轉回原格式
方法3:pickle方式
解釋:import picklea=}
data=pickle.dumps(a)
#轉換成pickle格式 (str型別)
data=pickle.loads(data)
#轉回原格式
04 Python中檔案流的關閉
目錄 close 關閉檔案流 with語句 上下文管理器 由於檔案底層是由作業系統控制,所以我們開啟的檔案物件必須顯式呼叫 close 方法 關閉檔案物件。當呼叫 close 方法時,首先會把緩衝區資料寫入檔案 也可以直接呼叫 flush 方法 再關閉檔案,釋放檔案物件。為了確保開啟的檔案物件正常關...
04 Python之檔案 異常和模組
1 掌握外部檔案讀取和儲存各類方法。2 掌握異常的處理辦法。3 掌握外部模組匯入和呼叫的方法。實際應用中,我們絕大數的資料都是通過檔案的互動完成的。with open 檔案路徑 開啟模式 encoding 操作檔案的字元編碼 as f 對檔案進行相應的讀寫操作 with open e ipthon ...
04 python條件控制語句
語法 if 條件表示式 weight 180if weight 160 print 你體重有點超標了 print 你該 了 a input 請輸入您的密碼 語法 input語句 a int input 請輸入您的密碼 if a 123456 print 這是高手 語法 if else語句 b int...