io程式設計
檔案讀寫
讀檔案:
f=open('/users/michael/test.txt','r')開啟
f.read()讀取
如果不能確定檔案大小,反覆呼叫read(size)比較保險;如果是配置檔案,呼叫readlines()最方便:
with open('d:/test11.txt','r') as f:
print(f.readlines())
像open()函式返回的這種有個read()方法的物件,在python中統稱為file-like object。
stringio就是在記憶體中建立的file-like object,常用作臨時緩衝。
二進位制檔案
f=open('/users/michael/test.txt','rb')用'rb'模式開啟檔案為二進位制檔案讀取
字元編碼
f=open('/users/michael/test.txt','r',encoding='gbk',errors='ignore')讀取gbk編碼的檔案,忽略錯誤資訊
寫檔案:
f=open('d:/test11.txt','w')
f.write('hello,world!')
f.close()
只有呼叫close()方法時,作業系統才保證把沒有寫入的資料全部寫入磁碟。忘記呼叫close()的後果是資料可能只寫了一部分到磁碟,剩下的丟失了
with open('d:/test11.txt','w') as f:
f.write('hello,world!')
stringio和bytesio
stringio顧名思義就是在記憶體中讀寫str。
>>> from io import stringio
>>> f = stringio()
>>> f.write('hello')
getvalue()方法用於獲得寫入後的str。
print(f.getvalue())
要讀取stringio,可以用乙個str初始化stringio,然後,像讀檔案一樣讀取:
>>> from io import stringio
>>> f = stringio('hello!\nhi!\ngoodbye!')
>>> while true:
... s = f.readline()
... if s == '':
... break
... print(s.strip())
bytesio
操作二進位制資料,就需要使用bytesio
>>> from io import bytesio
>>> f = bytesio()
>>> f.write('中文'.encode('utf-8'))
操作檔案和目錄
python程式中執行這些目錄和檔案的操作怎麼辦?其實作業系統提供的命令只是簡單地呼叫了作業系統提供的介面函式,python內建的os模組也可以直接呼叫作業系統提供的介面函式。
import os
os.name
操作檔案和目錄的函式一部分放在os模組中,一部分放在os.path模組中
序列化變數從記憶體中變成可儲存或傳輸的過程稱之為序列化pickling,反過來,把變數內容從序列化的物件重新讀到記憶體裡稱之為反序列化,即unpickling。
import pickle
d = dict(name='bob', age=20, score=88)
pickle.dumps(d)
當我們要把物件從磁碟讀到記憶體時,可以先把內容讀到乙個bytes,然後用pickle.loads()方法反序列化出物件,也可以直接用pickle.load()方法從乙個file-like object中直接反序列化出物件
python IO程式設計
io程式設計 檔案讀寫 f open text.txt r 標示符 r 表示讀 str f.read print str f.close 如果檔案不存在,open 函式就會丟擲乙個ioerror的錯誤,並且給出錯誤碼和詳細的資訊告訴你檔案不存在。最後一步是呼叫close 方法關閉檔案。檔案使用完畢後...
Python IO程式設計
io在計算機中指input output,也就是輸入和輸出。由於程式和執行時資料是在記憶體中駐留,由cpu這個超快的計算核心來執行,涉及到資料交換的地方,通常是磁碟 網路等,就需要io介面。只要進行資料交換,網路傳輸等行為都會產生io操作。同步io cpu等著,也就是程式暫停執行後續 等100m的資...
PythonIO程式設計
1.檔案讀寫 python內建了讀寫檔案的函式,用法和c是相容的。讀寫檔案前,我們先必須了解一下,在磁碟上讀寫檔案的功能都是由作業系統提供的,現代作業系統不允許普通的程式直接操作磁碟,所以,讀寫檔案就是請求作業系統開啟乙個檔案物件 通常稱為檔案描述符 然後,通過作業系統提供的介面從這個檔案物件中讀取...