Python讀寫文件

個人python版本是:html

open()方法返回文件對象,常常帶有2個參數:open(filename, mode)python

f = open('workfile', 'w')

第一個參數爲文件名;優化

第二個參數爲文件的讀寫權限。ui

python讀寫文件的權限
mode  describing 
r 只讀模式
w 只寫模式(不存在的文件會新建,存在的文件內容會被清除)
a 追加模式(任何新增的內容都會被追加文件內容末尾)
r+ 既可讀也可寫入
b 二進制模式(文件一般文本模式,此應該應用在不含文本的文件上)

在文本模式下,讀內容的時候會默認將不一樣平臺的換行(Unix下爲\n,Windows下爲\n\r)轉換成\n,而在寫入文件的時候,又會自動將\n轉換成各自平臺的寫法,這種後臺的轉換對於文本模式很是友好,可是可能會破壞JPEG或者EXE的二進制數據,所以,在讀寫文件時要謹慎使用二進制模式。spa

f.read(size)讀取文件對象的內容(請確保文件對象f已經被打開),這個方法能夠從文件對象內讀取必定數量的字符串(文本模式)或二進制對象(二進制模式),size是可選參數,當size被忽略或者不是有效值的時候,將會返回剩下的全部內容。若是已經讀取到文件的最後,將返回空字符串。code

f = open('test.txt','r')
f.read()

f.readline()按行讀取文件的內容,每行讀取到\n表示結束,只有讀取到文件內容末尾纔會忽略\n值,空行以「\n」表示,若是返回的值爲空字符串,表示已經到達文件內容末尾。htm

f = open('test.txt','r')
f.readline()

使用循環讀取並打印內容:對象

f = open('test.txt','r')
for line in f:
   print(line, end = '')
f.close()

使用list(f)  f.readlines()取得全部行:ci

f = open('test.txt','r')
list(f)
f = open('test.txt','r')
f.readlines()

f.write(string) 向文件內寫入字符串內容並返回字符串長度,其餘數據類型須要轉成字符串或者二進制才能寫入文件。資源

f = open('test.txt','w')
f.write('This is a test\n')

(文件夾須要關閉後才能打開txt文件看到寫入的內容,讀寫權限至少也是「w」。)

f = open('test.txt','w')
value = ('the answer', 42)
s = str(value)  # convert the tuple to string
f.write(s)

f.tell()返回從開始位置到當前讀取內容的位置:

f = open('test.txt','r')
f.tell()

f.seek(offset, from_what)改變文件對象的讀取位置:

f = open('test.txt','rb+')
f.seek(5)
f.read(1)

(不知道爲啥,紅框裏面計算出來的和官方文檔不同,綠色的爲官方文檔的截圖)

f.close()關閉並保存文件,釋放系統資源:

f = open('test.txt','rb+')
f.close()

使用with關鍵字來優化代碼(這點我還不是很明白):

It is good practice to use the with keyword when dealing with file objects. This has the advantage that the file is properly closed after its suite finishes, even if an exception is raised on the way. It is also much shorter than writing equivalent try-finally blocks:

文件對象還有一些其餘的方法,好比isatty()和truncate(),但相對來講不是很經常使用。

 

參考:

  1. https://docs.python.org/3.5/tutorial/inputoutput.html#reading-and-writing-files
相關文章
相關標籤/搜索