Python的文件是一個重要的對象,使用open()函數來打開文件,創建文件對象,進行文件的讀寫操作。當數據用於交換信息時,通常需要把數據保存為有格式的文本數據,可以保存為有特定的行分隔符和列分隔符的數據,這可以使用pandas模塊中的函數來讀寫;也可以保存為json結構的數據,這可以使用json模塊中的函數來實現;對於大型的數據交互,通常使用數據庫。
Python基礎庫中open()函數用於打開文件,創建文件對象:
open(name, mode, encoding=None)
參數注釋:
name是文件名,包括路徑
encoding 是編碼方式,常用的編碼方式是utf-8
mode是打開文件的模式,最常用的模式是:
- r:只讀模式,表示打開文件是為了從文件的開頭讀取文件中的數據;
- w:只寫模式,表示打開文件是為了向文件寫入數據。如果該文件已存在,那么打開該文件,刪除原有的內容,從文件開頭開始寫入;如果該文件不存在,那么創建新的文件。
- a:以只追加可寫模式打開文件,並將文件指針指向文件尾部;如果文件不存在則創建
open()函數創建一個file 對象,文件對象的主要方法:
- file.read([size]):size 未指定則返回整個文件,如果文件大小 >2 倍內存則有問題,f.read()讀到文件尾時返回""(空字串)。
- file.readline():只讀取一行。
- file.readlines([size]) :返回包含size行的列表, size 未指定則返回全部行。
- for line in f: print( line ):通過迭代器訪問。
- f.write("hello\n"):如果要寫入字符串以外的數據,先將他轉換為字符串。
- f.close() 關閉文件
1,讀取文件
調用open()函數打開一個文件,設置mode='r',表示打開文件是為了讀取文件中的數據,調用文件對象的函數或迭代器來逐行讀取數據:
file = open('test.txt','r',encoding='utf-8') lines = [line.strip() for line in file] file.close()
注意:打開文件之后,完成文件的讀寫之后,必須調用文件對象的close()方法,最終關閉文件。
2,寫入文件
調用open()函數打開一個文件,如果設置mode='w',那么表示打開文件是為了向文件中寫入數據,調用文檔對象的write('content')函數向文檔中寫入內容。
file = open('test.txt','w',encoding='utf-8') file.write('write content to file') file.close()
注意:打開文件之后,完成文件的讀寫之后,必須調用文件對象的close()方法,最終關閉文件。
3,文件的關閉
調用open()函數打開一個文件,是把文件讀取到內存中的,如果不及時關閉文件,文件對象就會一直占用系統資源,除了調用文件對象的close()方法關閉文件之外,還可以使用 with open(),由系統自動關閉文件:
with open('test.txt','r',encoding='utf-8') as file: lines = [line.strip() for line in file]
參考文檔: