PythonCookBook 筆記 chapter-05-檔案I/O
阿新 • • 發佈:2018-12-19
open函式及引數點選開啟連結
1, 開啟文字檔案的兩種模式
filename = 'file.py' # 對文字檔案的讀寫rt/wt, 對二進位制資料的讀寫rb/wb # 離開with語句塊後,檔案自動關閉 with open(filename, 'rt') as fObj: data = fObj.read() print(data) # open要和close配對使用 fObj = open(filename, 'rt') data = fObj.read() print(data) fObj.close() # 重定向到檔案中 with open('new.txt', 'wt') as fObj: print('Helloworld', file=fObj)
2, os.path
import os path = './somefile.txt' print(os.path.basename(path)) # 檔名 print(os.path.dirname(path)) # 目錄名 print(os.path.join('tmp', 'test', os.path.basename(path))) print(os.path.exists('./somefile.txt')) # 檔案是否存在 print(os.path.isfile('./somefile.txt')) # 是否是檔案 print(os.path.isdir('./somefile.txt')) # 是否是目錄 out: somefile.txt . tmp\test\somefile.txt True True False
3, os.listdir
names = os.listdir('./') print(names) pyfiles = [name for name in os.listdir('./') if name.endswith('.py')] print(pyfiles) out: ['.idea', 'character.py', 'data.json', 'file.py', 'new.txt', 'somefile.txt', 'splitObj.py', 'tcp_serv.py'] ['character.py', 'file.py', 'splitObj.py', 'tcp_serv.py']
4, 臨時檔案和目錄
tempfile.TemporaryFile()
tempfile.TemporaryDirectory()
5, 序列化Python物件
import pickle
data = {'Leon':22, 'Mary':21}
with open('somefile.txt', 'wb') as fObj:
pickle.dump(data, fObj) # 轉儲到檔案dump
with open('somefile.txt', 'rb') as fObj:
data = pickle.load(fObj) # 從檔案中位元組流建立物件
print(data)
data = {'Leon':212, 'Mary':121}
strData = pickle.dumps(data) # 轉儲到string
print(strData)
print(pickle.loads(strData)) # 從string中建立物件
out:
{'Leon': 22, 'Mary': 21}
b'\x80\x03}q\x00(X\x04\x00\x00\x00Leonq\x01K\xd4X\x04\x00\x00\x00Maryq\x02Kyu.'
{'Leon': 212, 'Mary': 121}