讀和寫檔案
open() 將會回傳一個 file 物件
open(filename, mode)
不同模式打開檔案的完全串列:https://www.runoob.com/python3/python3-inputoutput.html


簡單的代碼
1 f=open("exp.txt",'w')
2 f.write("hhhhhh")
3 f.close()
4 f=open("exp.txt",'w')
5 f.write('fugaighhhhhh')
6 f.close()
7 f=open("exp.txt",'a')
8 f.write('\nzhuijiahhhh')
9 f.close()
檔案物件的方法
- f.read()
為了讀取一個檔案的內容,呼叫 f.read(size), 這將讀取一定數目的資料, 然后作為字串或位元組物件回傳,size 是一個可選的數字型別的引數, 當 size 被忽略了或者為負, 那么該檔案的所有內容都將被讀取并且回傳,
- f.readline()
f.readline() 會從檔案中讀取單獨的一行,換行符為 '\n',f.readline() 如果回傳一個空字串, 說明已經已經讀取到最后一行,
- f.readlines()
f.readlines() 將回傳該檔案中包含的所有行,如果設定可選引數 sizehint, 則讀取指定長度的位元組, 并且將這些位元組按行分割,
- f.write()
f.write(string) 將 string 寫入到檔案中, 然后回傳寫入的字符數,
如果要寫入一些不是字串的東西, 那么將需要先進行轉換,
# 打開一個檔案 f = open("/tmp/foo1.txt", "w") value = ('www.runoob.com', 14) s = str(value) f.write(s) # 關閉打開的檔案 f.close()
- f.tell()
f.tell() 回傳檔案物件當前所處的位置, 它是從檔案開頭開始算起的位元組數,
- f.seek()
如果要改變檔案當前的位置, 可以使用 f.seek(offset, from_what) 函式,from_what 的值, 如果是 0 表示開頭, 如果是 1 表示當前位置, 2 表示檔案的結尾,例如:
-
- seek(x,0) : 從起始位置即檔案首行首字符開始移動 x 個字符
- seek(x,1) : 表示從當前位置往后移動x個字符
- seek(-x,2):表示從檔案的結尾往前移動x個字符
- f.close()
當你處理完一個檔案后, 呼叫 f.close() 來關閉檔案并釋放系統的資源,如果嘗試再呼叫該檔案,則會拋出例外,
當處理一個檔案物件時, 使用 with 關鍵字是非常好的方式,在結束后, 它會幫你正確的關閉檔案, 而且寫起來也比 try - finally 陳述句塊要簡短,
>>> with open('/tmp/foo.txt', 'r') as f: ... read_data = f.read() >>> f.closed True
pickle模塊
python的pickle模塊實作了基本的資料序列和反序列化,通過pickle模塊的序列化操作我們能夠將程式中運行的物件資訊保存到檔案中去,永久存盤,通過pickle模塊的反序列化操作,我們能夠從檔案中創建上一次程式保存的物件,
基本介面:
pickle.dump(obj, file, [,protocol])
對 file 以讀取的形式打開
x = pickle.load(file)
1 import pickle 2 3 # 使用pickle模塊將資料物件保存到檔案 4 data1 = {'a': [1, 2.0, 3, 4+6j], 5 'b': ('string', u'Unicode string'), 6 'c': None} 7 8 selfref_list = [1, 2, 3] 9 selfref_list.append(selfref_list) 10 11 output = open('data.pkl', 'wb') 12 13 # Pickle dictionary using protocol 0. 14 pickle.dump(data1, output) 15 16 # Pickle the list using the highest protocol available. 17 pickle.dump(selfref_list, output, -1) 18 19 output.close()
1 import pprint, pickle 2 3 #使用pickle模塊從檔案中重構python物件 4 pkl_file = open('data.pkl', 'rb') 5 6 data1 = pickle.load(pkl_file) 7 pprint.pprint(data1) 8 9 data2 = pickle.load(pkl_file) 10 pprint.pprint(data2) 11 12 pkl_file.close()
關于file物件的詳細方法和引數
https://www.runoob.com/python3/python3-file-methods.html
python3 檔案/目錄方法
https://www.runoob.com/python3/python3-os-file-methods.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/236941.html
標籤:Python
