最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

探究python中open函數(shù)的使用

 更新時(shí)間:2016年03月01日 17:10:40   作者:RockPine  
這篇文章主要為大家詳細(xì)介紹了python中open函數(shù)的使用方法,對(duì)python文件方法open進(jìn)行深入研究,感興趣的小伙伴們可以參考一下

最近,開始學(xué)習(xí)python的開發(fā),遇到了一點(diǎn)文件操作的問(wèn)題,探究一下open函數(shù)的使用。

一、open()的函數(shù)原型
open(file, mode=‘r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True)
從官方文檔中我們可以看到open函數(shù)有很多的參數(shù),我們常用的是file,mode和encoding,對(duì)于其它的幾個(gè)參數(shù),平時(shí)不常用,也簡(jiǎn)單介紹一下。
buffering的可取值有0,1, >1三個(gè),0代表buffer關(guān)閉(只適用于二進(jìn)制模式),1代表line buffer(只適用于文本模式),>1表示初始化的buffer大??;
encoding表示的是返回的數(shù)據(jù)采用何種編碼,一般采用utf8或者gbk;
errors的取值一般有strict,ignore,當(dāng)取strict的時(shí)候,字符編碼出現(xiàn)問(wèn)題的時(shí)候,會(huì)報(bào)錯(cuò),當(dāng)取ignore的時(shí)候,編碼出現(xiàn)問(wèn)題,程序會(huì)忽略而過(guò),繼續(xù)執(zhí)行下面的程序。
newline可以取的值有None, \n,  \r, '', ‘\r\n' ,用于區(qū)分換行符,但是這個(gè)參數(shù)只對(duì)文本模式有效;
closefd的取值,是與傳入的文件參數(shù)有關(guān),默認(rèn)情況下為True,傳入的file參數(shù)為文件的文件名,取值為False的時(shí)候,file只能是文件描述符,什么是文件描述符,就是一個(gè)非負(fù)整數(shù),在Unix內(nèi)核的系統(tǒng)中,打開一個(gè)文件,便會(huì)返回一個(gè)文件描述符。
二、file() 與open()
兩者都能夠打開文件,對(duì)文件進(jìn)行操作,也具有相似的用法和參數(shù),但是,在我看來(lái),這兩種文件打開方式有本質(zhì)的區(qū)別,file為文件類,用file()來(lái)打開文件,相當(dāng)于這是在構(gòu)造文件類,而用open()打開文件,是用python的內(nèi)建函數(shù)來(lái)操作。
三、參數(shù)Mode的基本取值

r、w、a為打開文件的基本模式,對(duì)應(yīng)著只讀、只寫、追加模式;
b、t、+、U這四個(gè)字符,與以上的文件打開模式組合使用,二進(jìn)制模式,文本模式,讀寫模式、通用換行符,根據(jù)實(shí)際情況組合使用、

四、 常見的mode取值組合
1、r或rt    默認(rèn)模式,文本模式讀
2、rb      二進(jìn)制文件
3、w或wt    文本模式寫,打開前文件存儲(chǔ)被清空
4、wb    二進(jìn)制寫,文件存儲(chǔ)同樣被清空 
5、a   追加模式,只能寫在文件末尾
6、a+  可讀寫模式,寫只能寫在文件末尾 
7、w+ 可讀寫,與a+的區(qū)別是要清空文件內(nèi)容
8、r+   可讀寫,與a+的區(qū)別是可以寫到文件任何位置 

五、幾個(gè)模式的區(qū)別
為了測(cè)試不同模式的區(qū)別,我們用一小段代碼來(lái)測(cè)試寫入文件中的直觀不同。

test = [ "test1\n", "test2\n", "test3\n" ]
  f = open( "b.txt", "a+")
  try:
    for s in test:
      f.write( s )
  finally:
    f.close()

(1)a+與w+模式的區(qū)別

(2)a+與r+模式

在寫入文件前,我們?cè)谏厦婺嵌未a中加上一句 seek(6),用來(lái)定位寫入文件寫入位置。

注意:r+模式打開文件時(shí),此文件必須存在,否則就會(huì)報(bào)錯(cuò),‘r'模式也如此
六、換行符帶來(lái)的煩惱
當(dāng)你用二進(jìn)制模式將帶有換行符的字符串寫入txt文件時(shí),數(shù)據(jù)存儲(chǔ)是正確的,但是當(dāng)用windows平臺(tái)的記事本程序打開時(shí),你看到的換行符確實(shí)一個(gè)個(gè)的小黑塊,但是,用文本模式,就不存在這樣的問(wèn)題。
在這里,涉及到了不同平臺(tái)由于編碼的問(wèn)題,而對(duì)換行符有不同的識(shí)別。unix或者linux系統(tǒng)識(shí)別\n為換行符的標(biāo)識(shí),但是windows平臺(tái)的編碼,對(duì)\n不予理睬。
但是python自身帶有轉(zhuǎn)化功能,用文本模式的時(shí)候,你不會(huì)看到由于平臺(tái)不同而造成的換行效果不同,但是,二進(jìn)制模式的時(shí)候,python便不會(huì)再去轉(zhuǎn)化,是什么,就寫進(jìn)去什么,此時(shí)的換行符,再用文本模式打開,windows下就不識(shí)別‘\n'換行符了。

以上就是關(guān)于python中open函數(shù)使用方法的相關(guān)介紹,希望對(duì)大家的學(xué)習(xí)有所幫助。

相關(guān)文章

  • Python實(shí)現(xiàn)的計(jì)數(shù)排序算法示例

    Python實(shí)現(xiàn)的計(jì)數(shù)排序算法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)的計(jì)數(shù)排序算法,簡(jiǎn)單描述了計(jì)數(shù)排序的算法原理并結(jié)合具體實(shí)例形式分析了Python計(jì)數(shù)排序的相關(guān)實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下
    2017-11-11
  • Python協(xié)程的2種實(shí)現(xiàn)方式分享

    Python協(xié)程的2種實(shí)現(xiàn)方式分享

    在?Python?中,協(xié)程(Coroutine)是一種輕量級(jí)的并發(fā)編程方式,可以通過(guò)協(xié)作式多任務(wù)來(lái)實(shí)現(xiàn)高效的并發(fā)執(zhí)行。本文主要介紹了Python實(shí)現(xiàn)協(xié)程的2種方式,希望對(duì)大家有所幫助
    2023-04-04
  • Django中template for如何使用方法

    Django中template for如何使用方法

    這篇文章主要介紹了Django中template for如何使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • python常用運(yùn)維腳本實(shí)例小結(jié)

    python常用運(yùn)維腳本實(shí)例小結(jié)

    這篇文章主要介紹了python常用運(yùn)維腳本實(shí)例小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 說(shuō)一說(shuō)Python logging

    說(shuō)一說(shuō)Python logging

    這篇文章主要和大家聊一聊Python logging,Python logging是什么,Python logging的作用是什么,感興趣的小伙伴們可以參考一下
    2016-04-04
  • python導(dǎo)入其他目錄下模塊的四種情況

    python導(dǎo)入其他目錄下模塊的四種情況

    在python工程中常常需要使用import引入自己編寫的其他模塊,但其它模塊有時(shí)不在同一個(gè)文件夾下,下面這篇文章主要給大家介紹了關(guān)于python導(dǎo)入其他目錄下模塊的四種情況,需要的朋友可以參考下
    2022-12-12
  • python異常處理try except過(guò)程解析

    python異常處理try except過(guò)程解析

    這篇文章主要介紹了python異常處理try except過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • python連接讀寫操作redis的完整代碼實(shí)例

    python連接讀寫操作redis的完整代碼實(shí)例

    這篇文章主要介紹了python連接讀寫操作redis的完整代碼實(shí)例,包括redis連接與讀寫操作,redis-sentinel哨兵模式下Python操作redis,redis-cluster(集群)模式下Python操作redis,需要的朋友可以參考下
    2023-01-01
  • Python實(shí)現(xiàn)K折交叉驗(yàn)證法的方法步驟

    Python實(shí)現(xiàn)K折交叉驗(yàn)證法的方法步驟

    這篇文章主要介紹了Python實(shí)現(xiàn)K折交叉驗(yàn)證法的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Pandas中根據(jù)條件替換列中的值的四種方式

    Pandas中根據(jù)條件替換列中的值的四種方式

    本文主要介紹了Pandas中根據(jù)條件替換列中的值的四種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01

最新評(píng)論

工布江达县| 郧西县| 云龙县| 铜鼓县| 图片| 庐江县| 资溪县| 图片| 图片| 年辖:市辖区| 马鞍山市| 西充县| 博罗县| 博罗县| 凤山市| 民县| 通榆县| 岳池县| 门源| 什邡市| 高阳县| 奉贤区| 中方县| 清镇市| 万源市| 松桃| 靖安县| 来凤县| 曲靖市| 道孚县| 咸宁市| 钟山县| 汉阴县| 双柏县| 虞城县| 濮阳县| 万盛区| 兴安盟| 历史| 定西市| 民权县|