使用open打開文件后一定要記得調用文件對象的close()方法。比如可以用try/finally語句來確保最后能關閉文件。(不能把open語句放在try塊里,因為當打開文件出現異常時,文件對象file_object無法執行close()方法。)
- 文件屬性:
- closed #標記文件是否已經關閉,由close()改寫
- encoding #文件編碼
- mode #打開模式 r w a U
- name #文件名
- newlines #文件中用到的換行模式,是一個tuple
- softspace #boolean型 ,一般為0,據說用於print
- 打開文件:open(路徑+文件名,讀入模式,緩存區),后面兩項可選
- 讀入模式(可疊加使用):
- r只讀(默認),
- w寫入(會覆蓋原有文件),
- x新建並寫入,
- a追加(如果文件不存在,創建對應文件),
- b二進制模式,
- t文本模式,
- +讀寫文件,
- U提供通用換行符。
- 舉例:file1 = open('c://test.txt', 'wb+'),以二進制讀寫模式打開test.文件,注意路徑需要使用//。
- 讀入模式(可疊加使用):
- 讀入文件內容:
- file1.read([size]):size為讀取長度,以byte為單位,若size未指定則返回整個文件。如果文件大小>2倍內存則有問題。f.read()讀到文件尾時返回""(空字串)
- file1.readline([size]):讀出一行數據的size個字符到行尾,若size未指定,返回整行數據。
- file1.readlines([size]):返回包含size行的列表,size 未指定則返回全部行。
- 寫入或追加文件內容w,a:關閉文件:
- file1.write(string):寫入一個字符串,原有文件內容會被刪除。(只能寫入一行數據,換行用'\n'或者寫入字符串就已經換行。)
- file1.writelines(list或者tuple):將列表或者元組按照行寫入文件。
- file1.append(string):追加新加內容到文件末尾
- 指針相關關閉文件:file1.colse()
- file1.tell():返回一個表示當前文件指針位置的整數
- file1.seek(偏移量,[起始位置]):移動文件指針(偏移量:以比特為單位,可正可負;起始位置:00文件頭,默認值,1-當前位置,2-文件尾)
其他補充:
- 使用pickle模塊在文件中存儲和恢復python對象,例:
-
testFile = open('pickle.txt','w')
#and import pickle
import pickle
testDict = {'name':'Chen Zhe','gender':'male'}
pickle.dump(testDict,testFile)
testFile.close()
testFile = open('pickle.txt','r')
print pickle.load(testFile)
testFile.close() - python中統一用\n換行,用U模式打開文件,就是支持所有的換行模式,也就說‘\r’ '\n' '\r\n'都可表示換行。