只讀'w'->只寫,文件已存在則清空,不存在則創(chuàng)建。'a'->追加,寫到文件末尾'b'->二進(jìn)制模式,比如打開圖像、音頻、word文件。'+'->" />

国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

詳解Python中open()函數(shù)指定文件打開方式的用法

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 14:17:18
文檔

詳解Python中open()函數(shù)指定文件打開方式的用法

詳解Python中open()函數(shù)指定文件打開方式的用法:當(dāng)我們用open()函數(shù)去打開文件的時候,有好幾種打開的模式。'r'->只讀'w'->只寫,文件已存在則清空,不存在則創(chuàng)建。'a'->追加,寫到文件末尾'b'->二進(jìn)制模式,比如打開圖像、音頻、word文件。'+'->
推薦度:
導(dǎo)讀詳解Python中open()函數(shù)指定文件打開方式的用法:當(dāng)我們用open()函數(shù)去打開文件的時候,有好幾種打開的模式。'r'->只讀'w'->只寫,文件已存在則清空,不存在則創(chuàng)建。'a'->追加,寫到文件末尾'b'->二進(jìn)制模式,比如打開圖像、音頻、word文件。'+'->

當(dāng)我們用open()函數(shù)去打開文件的時候,有好幾種打開的模式。

'r'->只讀

'w'->只寫,文件已存在則清空,不存在則創(chuàng)建。

'a'->追加,寫到文件末尾

'b'->二進(jìn)制模式,比如打開圖像、音頻、word文件。

'+'->更新(可讀可寫)

這個帶'+'號的有點難以理解,上代碼感受下。

with open('foo.txt', 'w+') as f:

f.write('bar ')

f.seek(0)

data = f.read()

可以看到,上面這段代碼,它不但可以寫,還可以讀出來。注意要先定位到開頭,f.seek(0),不然讀出來的是空數(shù)據(jù)。

一些人可能會有迷惑,既然帶'+'號是可讀可寫,那'w+'跟'r+'有什么不同。

那就是,

'w+'會清空,會創(chuàng)建 (文件已存在則清空,不存在則創(chuàng)建。)

'r+'不清空,不創(chuàng)建

不要用二進(jìn)制模式打開文本文件

先看下面代碼的“詭異”現(xiàn)象。

假設(shè)在windows下,我有個f.txt文件,里面的內(nèi)容是下面這樣的。

hello
world

代碼一,

with open('f.txt', 'r') as f: 
 print f.readlines() 
with open('f.txt', 'rb') as f: 
 print f.readlines()

輸出

['hello
', 'world
']
['hello
', 'world
']

代碼二,

with open('f.txt', 'rb') as f: 
 data = f.read() 
with open('f.txt', 'w') as f: 
 f.write(data)

打開文件,變成了下面這樣,

hello^M
world^M

首先,先理解換行符' '跟回車符' '的概念。

' ',換行符(LF,Line-Feed ),指新的一行。

' ',回車符(CR,Carriage-Return),指回到行頭。

因為在不同系統(tǒng)下的換行標(biāo)識是不一樣的。

windows->'
'
unix->'
'
mac->'
'

這就是為什么windows下的txt在linux打開的時候行尾會有'^M'。

這就是為什么我在linux下跑腳本導(dǎo)出游戲數(shù)據(jù)下到本地windows打開變成了一行。

其實文本文件也是二進(jìn)制文件,是文本編碼的二進(jìn)制文件,文本文件對一些不可見字符進(jìn)行了處理,增加可讀性。

在python中,可以通過os.linesep獲得當(dāng)前系統(tǒng)的換行標(biāo)識。比如在windows下,os.linesep是' '。

在python中操作換行標(biāo)識的時候,并不用管是在什么平臺下,直接用' '就行了,python會自動根據(jù)不同系統(tǒng)轉(zhuǎn)成不同標(biāo)識。

有了上面這些理論依據(jù),就可以解析本文開頭代碼的“詭異”現(xiàn)象了。

代碼一中,用文本模式打開的文件,換行標(biāo)識會被python處理成' ',而用二進(jìn)制模式打開則原封不動。

代碼二中,用二進(jìn)制模式打開,用文本模式寫入。二進(jìn)制打開原封不動還是' ',而文本模式寫入的時候因為python會把' '轉(zhuǎn)成' ',所以其實就等于是寫入了' ',于是就多了個'^M'。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

詳解Python中open()函數(shù)指定文件打開方式的用法

詳解Python中open()函數(shù)指定文件打開方式的用法:當(dāng)我們用open()函數(shù)去打開文件的時候,有好幾種打開的模式。'r'->只讀'w'->只寫,文件已存在則清空,不存在則創(chuàng)建。'a'->追加,寫到文件末尾'b'->二進(jìn)制模式,比如打開圖像、音頻、word文件。'+'->
推薦度:
標(biāo)簽: 文件 打開的 python
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 精品国产91乱码一区二区三区 | 国产精品视频免费 | 亚洲精品高清国产一久久 | 国产日产高清欧美一区二区三区 | 久草伦理| 真实和子乱视频 | 久久精品成人一区二区三区 | 国产成人亚洲欧美三区综合 | 国产精品一区二区av | 精品视频一区二区三区四区五区 | 一级一级特黄女人精品毛片视频 | 一级一级特黄女人精品毛片视频 | 欧美试看 | 亚洲欧美另类日韩 | 国产精品福利久久久久久小说 | 国产精品久久亚洲一区二区 | 久久国产精品高清一区二区三区 | 一级不卡毛片免费 | 国产毛片一级 | 国产第7页 | 国产在线精品成人一区二区三区 | 欧美成人亚洲高清在线观看 | 久久国产综合精品欧美 | 国产精品久久久久久久久 | 欧美日韩在线亚洲国产人 | 青青草亚洲 | 丰满老熟好大bbbxxx | 手机在线观看国产精选免费 | 国产香蕉视频 | 成人欧美一区二区三区黑人 | 亚洲第一区视频在线观看 | 国产中文字幕在线 | 日本欧美一区二区三区不卡视频 | 成人国产精品一级毛片视频 | 精品欧美一区二区三区免费观看 | 日韩国产欧美一区二区三区 | 国产精品自拍一区 | 欧美日韩大尺码免费专区 | 欧美极品另类 | 欧美视频精品一区二区三区 | 在线播放精品一区二区啪视频 |