Python基礎 (下)
阿新 • • 發佈:2018-03-27
src txt style open spa 可選 alt file 打開文件
一、讀寫文件
1. 打開文件: open(filename, mode)。 mode有如下幾種模式,默認為只讀(r)。
2. 寫入文件
f = open("/home/test.txt", "w") # f.write(s) 將s寫入到文件中, 然後返回寫入的字符數。 num = f.write("Come on baby!\n Let‘s go party") print(num) # 如果要寫入非字符串的數據, 需要先轉換為字符串: value = (‘amy‘, 14, ‘China‘) s = str(value) f.write(s) f.close()
3. 讀取文件
f = open("/home/test.txt", "r") str = f.read() # f.read(size) 讀取一定數目的數據, 當size被忽略或者為負, 將讀取該文件的所有內容。 str = f.readline() # f.readline() 讀取一行,換行符為‘\n‘。 當返回一個空字符串, 說明已經讀取到最後一行。 str = f.readlines() # f.readlines()讀取所有行,如果設置可選參數sizehint, 則讀取指定長度的字節, 並且將這些字節按行分割。 print(str) # 叠代文件對象然後讀取每行 for line inf: print(line, end=‘‘) f.close()
4. 移動文件位置
f.tell() 返回文件對象當前所處的位置, 它是從文件開頭開始算起的字節數。
f.seek() 改變文件當前的位置, 語法: f.seek(offset, from_what) from_what為0表示從文件開頭移動, 1表示當前位置, 2表示文件的結尾,默認為0
seek(x,0) : 從起始位置即文件首行首字符開始移動x個字符
seek(x,1) : 表示從當前位置往後移動x個字符
seek(-x,2):表示從文件的結尾往前移動x個字符
f = open(‘/home/test.txt‘, ‘rb+‘) f.write(b‘0123456789abcdef‘) f.seek(5) # 移動到文件的第六個字節 f.read(1) # b‘5‘ f.seek(-3, 2) # 移動到文件的倒數第三字節 f.read(1) # b‘d‘ f.close()
5. pickle模塊 - 對象序列化
a.將數據對象保存到文件
import pickle data1 = {‘a‘: [1, 2.0, 3, 4+6j], ‘b‘: (‘string‘, u‘Unicode string‘), ‘c‘: None} list1 = [1, 2, 3] list1.append(list1) f = open(‘data.pkl‘, ‘wb‘) pickle.dump(data1, f) # 使用 protocol 0 pickle.dump(list1, f, -1) # 使用最高的協議 f.close()
b.從文件中重構python對象
Python基礎 (下)