内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

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

這篇文章給大家分享的是有關Python中open()函數(shù)指定文件打開方式的使用方法的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

在個舊等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網(wǎng)站建設、成都網(wǎng)站制作 網(wǎng)站設計制作專業(yè)公司,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站建設,網(wǎng)絡營銷推廣,成都外貿(mào)網(wǎng)站建設公司,個舊網(wǎng)站建設費用合理。

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

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

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

with open('foo.txt', 'w+') as f: 
    f.write('bar\n') 
    f.seek(0)  
    data = f.read()

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

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

那就是,

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

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

不要用二進制模式打開文本文件

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

假設在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\n', 'world\n']
['hello\r\n', 'world\r\n']

代碼二

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

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

hello^M

world^M

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

'\n',換行符(LF,Line-Feed ),指新的一行。
'\r',回車符(CR,Carriage-Return),指回到行頭。

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

windows->'\r\n'
unix->'\n'
mac->'\r'

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

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

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

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

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

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

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

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

感謝各位的閱讀!關于Python中open()函數(shù)指定文件打開方式的使用方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

分享文章:Python中open()函數(shù)指定文件打開方式的使用方法
網(wǎng)頁鏈接:http://www.rwnh.cn/article32/pgcjpc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供服務器托管標簽優(yōu)化、微信公眾號動態(tài)網(wǎng)站、企業(yè)建站網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設計
河北省| 宁津县| 格尔木市| 汕头市| 贵港市| 寻甸| 大庆市| 桦川县| 崇信县| 女性| 梁平县| 阳城县| 璧山县| 丰县| 龙陵县| 册亨县| 瑞昌市| 鱼台县| 阿瓦提县| 华亭县| 本溪| 庆云县| 新闻| 宾川县| 常州市| 都昌县| 东城区| 南开区| 仙桃市| 化州市| 娱乐| 洪雅县| 山东省| 东阳市| 土默特右旗| 宜章县| 驻马店市| 陆丰市| 吉安县| 金寨县| 高碑店市|