python open 開啟是什麼型別的檔案-詳解Python中open()函式指定檔案開啟方式的用法...
檔案開啟方式
當我們用open()函式去開啟檔案的時候,有好幾種開啟的模式。
'r'->只讀
'w'->只寫,檔案已存在則清空,不存在則建立。
'a'->追加,寫到檔案末尾
'b'->二進位制模式,比如開啟影像、音訊、word檔案。
'+'->更新(可讀可寫)
這個帶'+'號的有點難以理解,上程式碼感受下。
?
1
2
3
4
withopen('foo.txt','w+') as f:
f.write('bar ')
f.seek(0)
data= f.read()
可以看到,上面這段程式碼,它不但可以寫,還可以讀出來。注意要先定位到開頭,f.seek(0),不然讀出來的是空資料。
一些人可能會有迷惑,既然帶'+'號是可讀可寫,那'w+'跟'r+'有什麼不同。
那就是,
'w+'會清空,會建立 (檔案已存在則清空,不存在則建立。)
'r+'不清空,不建立
不要用二進位制模式開啟文字檔案
先看下面程式碼的"詭異”現象。
假設在windows下,我有個f.txt檔案,裡面的內容是下面這樣的。
?
1
2
hello
world
程式碼一,
?
1
2
3
4
withopen('f.txt','r') as f:
print f.readlines()
withopen('f.txt','rb') as f:
print f.readlines()
輸出
?
1
2
['hello ', 'world ']
['hello ', 'world ']
程式碼二,
?
1
2
3
4
withopen('f.txt','rb') as f:
data= f.read()
withopen('f.txt','w') as f:
f.write(data)
開啟檔案,變成了下面這樣,
?
1
2
hello^M
world^M
首先,先理解換行符' '跟回車符' '的概念。
' ',換行符(LF,Line-Feed ),指新的一行。
' ',回車符(CR,Carriage-Return),指回到行頭。
因為在不同系統下的換行標識是不一樣的。
?
1
2
3
windows->' '
unix->' '
mac->' '
這就是為什麼windows下的txt在linux開啟的時候行尾會有'^M'。
這就是為什麼我在linux下跑指令碼匯出遊戲資料下到本地windows開啟變成了一行。
其實文字檔案也是二進位制檔案,是文字編碼的二進位制檔案,文字檔案對一些不可見字元進行了處理,增加可讀性。
在python中,可以通過os.linesep獲得當前系統的換行標識。比如在windows下,os.linesep是' '。
在python中操作換行標識的時候,並不用管是在什麼平臺下,直接用' '就行了,python會自動根據不同系統轉成不同標識。
有了上面這些理論依據,就可以解析本文開頭程式碼的"詭異”現象了。
程式碼一中,用文字模式開啟的檔案,換行標識會被python處理成' ',而用二進位制模式開啟則原封不動。
程式碼二中,用二進位制模式開啟,用文字模式寫入。二進位制開啟原封不動還是' ',而文字模式寫入的時候因為python會把' '轉成' ',所以其實就等於是寫入了' ',於是就多了個'^M'。
相關文章
- 詳解Python中open()函式指定檔案開啟方式的用法Python函式
- Python中open函式怎麼操作檔案Python函式
- lnk是什麼格式檔案 別人發的lnk檔案怎麼開啟
- xml是什麼格式的檔案 xml檔案怎麼開啟XML
- 什麼是 Office Open XML 檔案格式XML
- ipynb檔案用什麼開啟 ipynb檔案怎麼開啟
- csv檔案用什麼開啟 csv是什麼格式檔案
- dll檔案是什麼 dll檔案用什麼軟體開啟
- 怎麼開啟python的.py格式的檔案Python
- bin是什麼檔案格式 bin檔案要怎麼開啟
- ofd是什麼格式的檔案 ofd格式檔案用什麼軟體開啟
- step檔案用什麼軟體開啟 step檔案怎麼開啟
- plt是什麼格式檔案 plt檔案要用什麼軟體開啟
- swf是什麼檔案格式 swf檔案要用什麼軟體開啟
- vsd格式檔案怎麼開啟 vsd是什麼格式的檔案,
- DBF檔案怎麼開啟?DBF檔案的開啟方法教程
- mobi是什麼檔案格式 mobi檔案怎麼開啟檢視
- Win10系統檔案開啟方式錯誤提示“Windows無法開啟此型別檔案”怎麼辦Win10Windows型別
- stp檔案用什麼開啟 stp檔案用什麼免費軟體開啟
- mpp檔案用什麼軟體開啟 如何開啟mpp格式檔案
- 巧妙改變某型別檔案的預設開啟方式(轉)型別
- 在cmd中開啟指定檔案路徑
- python IO模組【二】:open函式詳解Python函式
- rtf是什麼格式的檔案 rtf用什麼軟體開啟
- python中upper函式的用法是什麼?Python函式
- dxf是什麼檔案格式 dxf檔案格式用什麼軟體怎麼開啟
- python如何開啟音樂檔案Python
- unix下,vi開啟檔案是提示“未知的終端型別”型別
- Python中的.pyc檔案是幹什麼的Python
- html檔案怎麼開啟(手機html檔案怎麼開啟)HTML
- python的檔案型別Python型別
- dwg格式檔案用什麼軟體開啟 dwg是什麼檔案格式
- win10怎麼開啟.vob檔案_wn10系統中vob檔案用什麼開啟Win10
- window.open()函式引數用法詳解函式
- 更改Mac檔案的預設開啟方式Mac
- eml是什麼檔案格式 eml用什麼軟體開啟
- dxf檔案用什麼開啟(dxf檔案格式介紹)
- win10ape檔案用什麼開啟_win10如何開啟ape檔案Win10