欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

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

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+模式

在寫入文件前,我們在上面那段代碼中加上一句 seek(6),用來定位寫入文件寫入位置。

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

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

相關文章

  • python封裝json格式字符串并處理單雙引號問題

    python封裝json格式字符串并處理單雙引號問題

    大家好,本篇文章主要講的是python封裝json格式字符串并處理單雙引號問題,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • 在pycharm中使用git版本管理以及同步github的方法

    在pycharm中使用git版本管理以及同步github的方法

    今天小編就為大家分享一篇在pycharm中使用git版本管理以及同步github的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python各類圖像庫的圖片讀寫方式總結(推薦)

    Python各類圖像庫的圖片讀寫方式總結(推薦)

    這篇文章主要介紹了Python各類圖像庫的圖片讀寫方式總結(推薦),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • Python深入淺出分析元類

    Python深入淺出分析元類

    在Python里一切都是對象(object),基本數(shù)據(jù)類型,如數(shù)字,字符串,函數(shù)都是對象。對象可以由類(class)進行創(chuàng)建。那么既然一切都是對象,那么類是對象嗎?是的,類也是對象,那么又是誰創(chuàng)造了類呢?答案也很簡單,也是類,一個能創(chuàng)作類的類,稱之為(type)元類
    2022-07-07
  • 詳解如何在python中讀寫和存儲matlab的數(shù)據(jù)文件(*.mat)

    詳解如何在python中讀寫和存儲matlab的數(shù)據(jù)文件(*.mat)

    這篇文章主要介紹了詳解如何在python中讀寫和存儲matlab的數(shù)據(jù)文件(*.mat),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • python的移位操作實現(xiàn)詳解

    python的移位操作實現(xiàn)詳解

    這篇文章主要介紹了ppython的移位操作實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • 2018年Python值得關注的開源庫、工具和開發(fā)者(總結篇)

    2018年Python值得關注的開源庫、工具和開發(fā)者(總結篇)

    本文給大家總結了2018年Python值得關注的開源庫、工具和開發(fā)者,需要的朋友可以參考下
    2018-01-01
  • Python實現(xiàn)九宮格式的朋友圈功能內附“馬云”朋友圈

    Python實現(xiàn)九宮格式的朋友圈功能內附“馬云”朋友圈

    PIL(Python Imaging Library)是一個非常強大的Python庫,但是它支持Python2.X, 在Python3中則使用的是Pillow庫,它是從PIL中fork出來的一個分支。這篇文章主要介紹了用Python搞定九宮格式的朋友圈功能內附“馬云”朋友圈 ,需要的朋友可以參考下
    2019-05-05
  • python實現(xiàn)漢諾塔遞歸算法經典案例

    python實現(xiàn)漢諾塔遞歸算法經典案例

    這篇文章主要大家分享了python實現(xiàn)漢諾塔遞歸算法經典案例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Mac 使用python3的matplot畫圖不顯示的解決

    Mac 使用python3的matplot畫圖不顯示的解決

    今天小編就為大家分享一篇Mac 使用python3的matplot畫圖不顯示的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11

最新評論