檔案的輸入輸出:
fileobj=open(filename,mode)
moded的第乙個子母表示對其的操作:
r 讀模式
w 寫模式,如果檔案不存在的話,則建立,如果存在則重新寫新內容
x 如果檔案不存在的情況下,新建立並寫檔案
a 如果檔案存在,則在末尾新增內容
mode的第二個字母表示的是檔案的型別
t 代表文字型別
b 代表二進位制檔案
使用write()寫文字檔案
>>> poem=''' there was a young lady named bright,
... whose speed was far faster than light
... in a relatived way
... '''
>>> len(poem)
95>>> fout=open('relativity','w')
>>> fout.write(poem)
>>>
>>> fout.close()
使用read(),readline(),或者readlines()讀文字檔案
讀取檔案的最簡單的方式就是使用乙個迭代器,它會每次返回一行,
>>> poem=''
>>> fin=open('relativity','r')
>>> for line in fin:
... poem+=line
...
>>> fin.close()
>>> len(poem)
95
函式readlines()呼叫時每次讀取一行,並返回單行字串列表『
>>> fin=open('relativity','r')
>>> lines=fin.readlines()
>>> fin.close()
>>> for line in lines:
... print line
...
there was a young lady named bright,
whose speed was far faster than light
in a relatived way
使用write()寫二進位制檔案
>>> bdata=bytes(range(0,256))
>>> len(bdata)
1170
>>> fout=open('bfile','wb')
>>> fout.write(bdata)
>>> fout.close()
使用with自動關閉檔案
python的上下文管理器會清理一些資源,例如開啟的檔案,它的形式為with expression as variable
>>> poem='aaa bbb ccc ddd'
>>> with open('relativity','wt') as fout:
... fout.write(poem)
...
完成上下文管理器的**後,檔案會自動關閉。
使用seek()改變位置
python都會跟蹤檔案的位置,函式tell()返回距離檔案開始處的位元組偏移量,函式seek()允許跳轉到檔案其他位元組偏移量的位置,
>>> fin=open('bfile','rb')
>>> fin.tell()
0>>> fin.seek(255)
>>> bdata=fin.read()
>>> len(bdata)
916>>> bdata[0]
'6'
seek()同樣返回當前的偏移量
用第二個引數呼叫函式seek(): seek(offset:origin)
如果origin等於0,預設為0,從開頭偏移offset個位元組
如果origin等於1,從當前位置偏移offset個位元組
如果origin等於2,距離最後結尾處偏移offset個位元組
檔案輸入 輸出
13.1 和檔案進行通訊 文字檢視和二進位制檢視 在文字檢視中,程式看到的內容和二進位制的內容可能不同,例如ms dos文字檔案用回車符和換行符的組合 r n來表示行尾,macintosh用乙個回車符 r來表示行尾。c程式使用乙個 n表示行尾。所以,如果c程式以文字檢視模式處理乙個ms dos文字檔...
檔案輸入輸出
檔案的兩種檢視 文字和二進位制。有的時候同乙個檔案以不同的檢視進行檢視,顯示是不同的,主要是控制字元 回車,換行 的不同。printf 是將各種型別轉換為適合的終端字元。所以打算將乙個結構體送入檔案的話不能用printf這一類函式。二進位制形式儲存,中間沒有從數字到字串形式的轉化。對於標準io,fr...
檔案輸入輸出
當我們求解acm題目時,通常在設計好演算法和程式後,要在除錯環境 例如vc等 中執行程式,輸入測試資料,當能得到正確執行結果後,才將程式提交到oj中。但由於除錯往往不能一次成功,每次執行時,都要重新輸入一遍測試資料,對於有大量輸入資料的題目,輸入資料需要花費大量時間。使用freopen函式可以解決測...