<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Python操作文件

      1、open() 方法創(chuàng)建文件對(duì)象

      Python 的 open() 方法用于打開(kāi)一個(gè)文件,該方法返回一個(gè)文件對(duì)象,在對(duì)文件進(jìn)行處理過(guò)程都需要使用到這個(gè)函數(shù),如果該文件無(wú)法被打開(kāi),會(huì)拋出 OSError。注意:使用 open() 方法后一定要保證關(guān)閉文件對(duì)象,即調(diào)用 close() 方法。

      open() 函數(shù)常用形式是接收兩個(gè)參數(shù):文件路徑(file)和模式(mode)。

      fileObject = open(filePath, mode='r')

      完整的語(yǔ)法格式為:

      open(filePath, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

      參數(shù)說(shuō)明:

      • filePath: 必需,文件路徑(相對(duì)或者絕對(duì)路徑)。
      • mode: 可選,文件打開(kāi)模式
      • buffering: 設(shè)置緩沖
      • encoding: 一般使用utf8
      • errors: 報(bào)錯(cuò)級(jí)別
      • newline: 區(qū)分換行符
      • closefd: 傳入的file參數(shù)類(lèi)型
      • opener: 設(shè)置自定義開(kāi)啟器,開(kāi)啟器的返回值必須是一個(gè)打開(kāi)的文件描述符。

       

      1.1、open()方法的文件打開(kāi)模式

      opne()的第一個(gè)參數(shù)是路徑+文件名,第二個(gè)參數(shù)是mode文件打開(kāi)模式,該參數(shù)設(shè)置對(duì)文件進(jìn)行什么模式的操作,可能是只讀、只寫(xiě)或者讀寫(xiě)。如果我們?cè)O(shè)置了只讀,就不能寫(xiě),類(lèi)似的只寫(xiě)也是,但也可以設(shè)置讀寫(xiě)。

      常見(jiàn)的 Mode 打開(kāi)模式的值:

      Mode

      描述

      r

      只讀。待打開(kāi)文件必須存在,文件的指針將會(huì)放在文件的開(kāi)頭。(默認(rèn)模式)

      w

      只寫(xiě)(重寫(xiě))。如果待打開(kāi)文件已存在,會(huì)先清空該文件的已有內(nèi)容,不存在則新創(chuàng)建一個(gè)

      a

      只寫(xiě)(追加)。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾,新的內(nèi)容將會(huì)被寫(xiě)入到已有內(nèi)容之后。如果該文件不存在,則創(chuàng)建新文件進(jìn)行寫(xiě)入。

      r+

      讀寫(xiě),文件必須存在

      w+

      讀寫(xiě),如果待打開(kāi)文件已存在,會(huì)先清空,不存在則創(chuàng)建

      a+

      讀寫(xiě),如果文件已存在,不會(huì)清空,接著往后追加

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

      不同模式打開(kāi)文件的完全列表:

      t 文本模式 (默認(rèn))
      b 二進(jìn)制模式
      + 打開(kāi)一個(gè)文件進(jìn)行更新(可讀可寫(xiě))
      r 以只讀方式打開(kāi)文件。文件的指針將會(huì)放在文件的開(kāi)頭。這是默認(rèn)模式。
      rb 以二進(jìn)制格式打開(kāi)一個(gè)文件用于只讀。文件指針將會(huì)放在文件的開(kāi)頭。
      r+ 打開(kāi)一個(gè)文件用于讀寫(xiě)。文件指針將會(huì)放在文件的開(kāi)頭。
      rb+ 以二進(jìn)制格式打開(kāi)一個(gè)文件用于讀寫(xiě)。文件指針將會(huì)放在文件的開(kāi)頭。
      w 打開(kāi)一個(gè)文件只用于寫(xiě)入。如果該文件已存在則打開(kāi)文件,并從開(kāi)頭開(kāi)始編輯,即原有內(nèi)容會(huì)被刪除。如果該文件不存在,創(chuàng)建新文件。
      wb 以二進(jìn)制格式打開(kāi)一個(gè)文件只用于寫(xiě)入。如果該文件已存在則打開(kāi)文件,并從開(kāi)頭開(kāi)始編輯,即原有內(nèi)容會(huì)被刪除。如果該文件不存在,創(chuàng)建新文件。
      w+ 打開(kāi)一個(gè)文件用于讀寫(xiě)。如果該文件已存在則打開(kāi)文件,并從開(kāi)頭開(kāi)始編輯,即原有內(nèi)容會(huì)被刪除。如果該文件不存在,創(chuàng)建新文件。
      wb+ 以二進(jìn)制格式打開(kāi)一個(gè)文件用于讀寫(xiě)。如果該文件已存在則打開(kāi)文件,并從開(kāi)頭開(kāi)始編輯,即原有內(nèi)容會(huì)被刪除。如果該文件不存在,創(chuàng)建新文件。
      a 打開(kāi)一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。也就是說(shuō),新的內(nèi)容將會(huì)被寫(xiě)入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫(xiě)入。
      ab 以二進(jìn)制格式打開(kāi)一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。也就是說(shuō),新的內(nèi)容將會(huì)被寫(xiě)入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫(xiě)入。
      a+ 打開(kāi)一個(gè)文件用于讀寫(xiě)。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。文件打開(kāi)時(shí)會(huì)是追加模式。如果該文件不存在,創(chuàng)建新文件用于讀寫(xiě)。
      ab+ 以二進(jìn)制格式打開(kāi)一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。如果該文件不存在,創(chuàng)建新文件用于讀寫(xiě)。

       

      2、文件對(duì)象的常用方法

      2.1、fileObject.read() 方法讀取文件內(nèi)容

      我們可以使用 f.read(size) 來(lái)讀取文件內(nèi)容。

      size 是一個(gè)可選的數(shù)字類(lèi)型的參數(shù)。 當(dāng) size 被忽略了或者為負(fù),那么將讀取該文件的所有內(nèi)容。如果指定了 size,那么只讀取指定的字節(jié)數(shù)內(nèi)容。該方法返回一個(gè)字符串對(duì)象,如果是一個(gè)圖片文件或者音頻文件等將返回一個(gè)字節(jié)對(duì)象。

      以下實(shí)例假定文件 foo.txt 已存在(上面實(shí)例中已創(chuàng)建):

      #!/usr/bin/python3
      
      # 打開(kāi)一個(gè)文件
      f = open("/tmp/foo.txt", "r")
      
      str = f.read()
      print(str)
      
      # 關(guān)閉打開(kāi)的文件
      f.close()

       

      2.2、fileObject.readline() 讀取文件的一行

      f.readline() 會(huì)從文件中讀取單獨(dú)的一行。換行符為 '\n'。f.readline() 如果返回一個(gè)空字符串, 說(shuō)明已經(jīng)已經(jīng)讀取到最后一行。

      #!/usr/bin/python3
      f = open("/pythontab/code.txt")             # 返回一個(gè)文件對(duì)象  
      line = f.readline()             # 調(diào)用文件的 readline()方法  
      while line:  
          print(line, end = '')       # 在 Python 3中使用
          line = f.readline()
      f.close()

       

      我們也可以迭代一個(gè)文件對(duì)象來(lái)讀取每行的內(nèi)容:

      #!/usr/bin/python3
      
      # 打開(kāi)一個(gè)文件
      f = open("/tmp/foo.txt", "r")
      
      for line in f:
          print(line, end='')
      
      # 關(guān)閉打開(kāi)的文件
      f.close()

       

      2.3、fileObject.readlines() 讀取文件的所有行

      f.readlines() 將返回該文件中包含的所有行,該方法返回一個(gè)列表 list。

      如果設(shè)置可選參數(shù) sizehint, 則讀取指定長(zhǎng)度的字節(jié), 并且將這些字節(jié)按行分割。

      #!/usr/bin/python3
      
      # 打開(kāi)一個(gè)文件
      f = open("/tmp/foo.txt", "r")
      
      str = f.readlines()
      print(str)
      
      # 關(guān)閉打開(kāi)的文件
      f.close()

       

      2.4、fileObject.write(str) 寫(xiě)入內(nèi)容

      f.write(string) 將 string 寫(xiě)入到文件中, 然后返回寫(xiě)入的字符數(shù)。

      #!/usr/bin/python3
      
      # 打開(kāi)一個(gè)文件
      f = open("/tmp/foo.txt", "w")
      
      num = f.write( "Python 是一個(gè)非常好的語(yǔ)言" )
      print(num)
      # 關(guān)閉打開(kāi)的文件
      f.close()

      實(shí)際上,在我們使用 write() 方法時(shí)并不是立即寫(xiě)入的,而是會(huì)先放到內(nèi)存的緩存區(qū),等到緩存區(qū)滿了之后再寫(xiě)入,當(dāng)然我們也可以使用 flush() 方法將緩存區(qū)的內(nèi)容立即寫(xiě)入到文件當(dāng)中。在我們調(diào)用 close() 方法時(shí),python會(huì)自動(dòng)將此時(shí)在緩沖區(qū)的內(nèi)容輸出到需要寫(xiě)入的文件當(dāng)中,并且保存。

       

      2.5、fileObject.close() 關(guān)閉文件對(duì)象

      當(dāng)你處理完一個(gè)文件后, 調(diào)用 f.close() 來(lái)關(guān)閉文件并釋放系統(tǒng)的資源。

      關(guān)閉后如果再?lài)L試調(diào)用該文件,則會(huì)拋出異常。

      f.close()
      f.read()    #關(guān)閉后再讀取將報(bào)錯(cuò):
      # Traceback (most recent call last):
      #  File "<stdin>", line 1, in ?
      # ValueError: I/O operation on closed file

      當(dāng)處理一個(gè)文件對(duì)象時(shí), 使用 with 關(guān)鍵字是非常好的方式。在結(jié)束后, 它會(huì)幫你正確的關(guān)閉文件。 而且寫(xiě)起來(lái)也比 try - finally 語(yǔ)句塊要簡(jiǎn)短:

      with open('/tmp/foo.txt', 'r') as f:
      ...     read_data = f.read()

       

      posted @ 2021-01-17 23:18  wenxuehai  閱讀(173)  評(píng)論(0)    收藏  舉報(bào)
      //右下角添加目錄
      主站蜘蛛池模板: 日本高清日本在线免费| 日产精品久久久久久久| 亚洲人成电影网站 久久影视| 免费人成年激情视频在线观看| 精品国产高清中文字幕| 夜夜夜高潮夜夜爽夜夜爰爰 | 和艳妇在厨房好爽在线观看| 视频二区中文字幕在线| 在线中文字幕国产一区| 乱码精品一区二区亚洲区| 大陆精大陆国产国语精品| 隆昌县| 国产精品色一区二区三区| 人人澡人摸人人添| 色婷婷综合久久久中文字幕| 无码视频一区二区三区| 夜夜嗨久久人成在日日夜夜| 亚洲中文字幕无码av永久| 日本伊人色综合网| 国语对白做受xxxxx在线中国| 好硬好湿好爽再深一点动态图视频 | 人妻少妇乱子伦精品| 国产精品成人无码久久久| 欧美精品黑人粗大破除| 久久精品免视看国产成人| 迁西县| 午夜福利理论片高清在线| 国产三级国产精品国产专区| 无码三级av电影在线观看| 2019nv天堂香蕉在线观看| 国产成人精品国内自产色| 久久久无码一区二区三区| 色综合人人超人人超级国碰| 亚洲高清日韩专区精品| 四虎永久精品免费视频| 色色97| 国内精品无码一区二区三区| 在线观看无码av五月花| 中国女人熟毛茸茸A毛片| 日日碰狠狠添天天爽五月婷| 国产精品国产三级国产试看|