自學python之檔案讀寫

2022-09-23 16:51:07 字數 1928 閱讀 7307

1、讀檔案

舉例:>>> f = open('d:', 'r')

>>>> f.read()

'hello, world!'

>>>> f.close()開啟乙個檔案,使用open()函式,第乙個引數是檔案的路徑,第二個引數是讀的意思。如果路徑錯了會報錯誤:

>>> f = open('d://chen/test.txt', 'r')

traceback (most recent call last):

file "", line 1, in

filenotfounderror: [errno 2] no such file or directory: 'd://chen/test.txt'

>>>read():一次讀取全部內容,用乙個str物件接收存進記憶體;

close():關閉檔案,每次使用完一定要關閉,不關閉會占用系統資源。

open()函式還有其他的引數:

『rb』:讀取二進位制檔案

>>> f = open('/users/michael/test.jpg', 'rb')encoding:讀取指定編碼檔案

errors:如果檔案中有編碼不對的,如何處理。以下**是忽略(ignore);

>>> f = open('d:', 'r',encoding='gbk', errors='ignore')注意:

如果程式在執行**錯了,那麼最後執行的close()不能被呼叫,則關閉不了檔案一直占用系統資源,而系統同一時間開啟的檔案是有限的。此時,我們可以使用try…finally。

舉例:>>> try:

... f = open('d:', 'r')

... print(f.read())

... finally:

... if f:

... f.close()

...hello world!

>>>但是如果每次都要扎樣寫,未免有些繁瑣,所以,python提供了with語句來自動幫我們呼叫close()方法:

>>> with open('d:', 'r') as f:

... print(f.read())

...hello world!

>>>效果和前面的try…finally一樣,且自動幫你呼叫close(),**更簡潔。

讀取檔案方式:

讀取檔案的時候,除了read(),還有其他的方式,如:

read(size):一次讀取size長度的位元組,下面**是一次讀取1024個位元組。

>>> with open('d:', 'r') as f:

... print(f.read(1024))

...hello world!還可以用readline()一次讀取一行,用readlines()一次讀取所有內容並按行返回list

>>> with open('d:', 'r') as f:

... for line in f.readlines():

... print(line.strip()) #去掉每行後面的\n換行符

...hello world!

test到底使用哪種讀取方式比較好呢?

當檔案很小的時候建議用read()一次讀出所有,當不知道檔案大小的時候,建議用read(size)一次一次的讀取,當讀取配置檔案的時候,建議使用readlines()讀取。

2、寫檔案

舉例:>>> with open('d:', 'w') as f:

... f.write('hello world!')寫檔案引數和讀檔案都是用open()函式,『w』是寫的意思,如果想指定寫入編碼,可以再加乙個encoding引數。

注意:如果以』w『模式寫入檔案,如果已經存在該檔案,則會被覆蓋;如果想追加在其後,可以以』a『模式寫入:

>>> with open('d:', 'a') as f:

... f.write('hello world!')

python之讀寫檔案

fr open readfile.txt r fw open writefile.txt w print fr.readline print fr.tell print fr.readlines fw.write write line fw.close fr.seek 0,0 第乙個引數代表位元組數...

Python之檔案讀寫

本文介紹python語言中的對於檔案的讀寫等操作。本文使用python3 首先是對檔案的操作流程為 1.開啟檔案,得到檔案控制代碼並賦值給乙個變數 2.通過控制代碼對檔案進行操作 3.關閉檔案 對於檔案的操作就離不開open 函式 這個函式是python的io模組中的乙個內建函式 首先建議使用hel...

python之檔案讀寫

python檔案讀寫 檔案讀取 data open baotuquan r encoding utf 8 read print data 輸出前10行,第九行修改 for line in f count 0if count 9 print fen count 1continue print line...