<thead id="jxdzp"><address id="jxdzp"><pre id="jxdzp"></pre></address></thead>

<em id="jxdzp"><span id="jxdzp"></span></em>

    <listing id="jxdzp"><nobr id="jxdzp"><meter id="jxdzp"></meter></nobr></listing>

      <address id="jxdzp"></address>
      <noframes id="jxdzp"><form id="jxdzp"><th id="jxdzp"></th></form>
      <noframes id="jxdzp"><form id="jxdzp"><th id="jxdzp"></th></form>

          訂閱本欄目 RSS您所在的位置: 深山工作室 > python > 正文

          總結一下with open()和open()的區別與使用方法

          2022/9/14 15:23:30 字體: 瀏覽 1297

          使用例子:
          with open('app.txt', 'w', encoding="utf-8") as file:
              file.write(ls_cont)



          1.用途:是python用來打開本地文件的,他會在使用完畢后,自動關閉文件,無需手動書寫close()

          2.用法:
          with open (file = "你要打開的路徑名(或保存內容的地址)",mode = "r/w/a",encoding = "utf-8") as f1:
                  data = f1.read/write()
                  print(data)

          3.關于mde的三種模式:
              r:只讀  用read()
              w:只寫 用write()            //會清除之前寫的內容
              a:追加內容 用write()        //會在已經寫的內容基礎上增加新的內容


          open與with open區別
          open()完成后必須調用close()方法關閉文件,因為文件對象會占用操作系統的資源,并且操作系統同一時間能打開的文件數量也是有限的,由于文件讀寫時都有可能產生IOError,一旦出錯,后面的f.close()就不會調用。with open()則可以避免這樣的情況。


          由于文件讀寫時都有可能產生IOError,一旦出錯,后面的f.close()就不會調用。
          所以,為了保證無論是否出錯都能正確地關閉文件,我們可以使用try … finally來實現:

          def readFile():
              try:
                  f =open('C:\\Users\\a\\Desktop\\測試文件 test.txt','r')
                  try:
                      data = f.read()
                      print(data)
                  except:
                      print('error occurs while reading file')
                  finally:
                      f.close()
              except:
                  print('rror occurs while reading file')

          if __name__ == '__main__':
              readFile()
          這樣的操作太麻煩了,可以通過with open語法來代替:

          def read_file():
              try:
                 with open('C:\\Users\\a\\Desktop\\測試文件 test.txt','r') as f:
                     data = f.read()
                     print(data)
              except:
                  print('error occurs while reading file')

          if __name__ == '__main__':
              read_file()
          執行結果與上例相同。這和前面的try … finally是一樣的,但是代碼更佳簡潔,并且不必調用f.close()方法,文件讀寫完成后,會自動幫我們調用 close 方法。


          -------------------- 分割線 ---------------------
          其它擴展閱讀:
          代碼

          #文件的讀操作
          with open('input_filename.txt','r') as f:#r為標識符,表示只讀
             df=pd.read_csv(f) 
             print(f.read())
          '''
          其他標識符:
          r: 以只讀方式打開文件。
          rb: 以二進制格式打開一個文件用于只讀。
          r+: 打開一個文件用于讀寫。文件指針將會放在文件的開頭。
          rb+:以二進制格式打開一個文件用于讀寫。
          '''
          #文件的寫操作
          with open('output_filename.csv', 'w') as f:
             f.write('hello world') 
          '''
          其他標識符:
          w: 打開一個文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
          wb: 以二進制格式打開一個文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
          w+: 打開一個文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
          wb+:以二進制格式打開一個文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
          a:打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。
          ab: 以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。
          a+: 打開一個文件用于讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用于讀寫。
          ab+:以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用于讀寫。
          ''' 4

          方法和屬性

          f.read([size])   #將文件數據作為字符串返回,可選參數size控制讀取的字節數
          f.readlines([size])   #返回文件中行內容的列表,size參數可選
          f.write(str)   #將字符串寫入文件
          f.writelines(strings)   #將字符串序列寫入文件
          f.close()   #關閉文件

          f.closed #返回布爾值,文件已經被關閉為True,否則為False
          f.mode #Access文件打開時使用的訪問模式
          f.encoding #文件所使用的編碼
          f.name #文件名
          f.newlines #未讀取到行分隔符時為None,只有一種行分隔符時為一個字符串,當文件有多種類型的行結束符時,則為一個包含所有當前所遇到的行結束的列表
          f.softspace #為0表示在輸出一數據后,要加上一個空格符,1表示不加。這個屬性一般程序員用不著,由程序內部使用

          注意

          要讀取非UTF-8編碼的文本文件,需要給open()函數傳入encoding參數
          讀取時調用read()將一次性讀取文件的全部內容,如果文件有10G,內存就爆了,保險起見可反復調用read(size)方法,每次最多讀取size個字節的內容。
          調用readline()可以每次讀取一行內容,調用readlines()一次讀取所有內容并按行返回list。
          根據需要調用:如果文件很小,read()一次性讀取最方便;如果不能確定文件大小,反復調用read(size)比較保險;如果是配置文件,調用readlines()最方便

          相關閱讀
          留言板留言板V7.0
          長春康輝旅行社有限責任公司
          一個效果非常不錯圖片載入loading等待效果
          總結一些DIV+CSS制作網頁時容易犯的錯誤
          紅色圣誕老人留言板模板
          httpd.ini偽靜態網站分享到微信好友微信朋友圈鏈接打不開報404錯誤的解決辦法
          小說封面制作網站留言板模板
          利用ASP正則查找文章里面的圖片,然后在新窗口打開
          共有0條關于《總結一下with open()和open()的區別與使用方法》的評論
          發表評論
          正在加載評論......
          返回頂部發表評論
          呢 稱:
          表 情:
          內 容:
          評論內容:不能超過 1000 字,需審核,請自覺遵守互聯網相關政策法規。
          驗證碼: 驗證碼 
          網友評論聲明,請自覺遵守互聯網相關政策法規。

          您發布的評論即表示同意遵守以下條款:
          一、不得利用本站危害國家安全、泄露國家秘密,不得侵犯國家、社會、集體和公民的合法權益;
          二、不得發布國家法律、法規明令禁止的內容;互相尊重,對自己在本站的言論和行為負責;
          三、本站對您所發布內容擁有處置權。

          更多信息>>欄目類別選擇
          百度小程序開發
          微信小程序開發
          微信公眾號開發
          uni-app
          asp函數庫
          ASP
          DIV+CSS
          HTML
          python
          更多>>同類信息
          Android移動端自動化測試:使用UIAutomatorViewer與Selenium定位元素
          python通過代碼修改pip下載源讓下載庫飛起
          python里面requests.post返回的res.text還有其它的嗎
          windows7環境下安裝配置jdk
          python對微信操作要用到這兩個庫wxpy與itchat
          8種Python字符串拼接的方法,你知道幾種
          更多>>最新添加文章
          dw里面查找替換使用正則刪除sqlserver里面的CONSTRAINT
          Android移動端自動化測試:使用UIAutomatorViewer與Selenium定位元素
          抖音直播音掛載小雪花 懂車帝小程序
          javascript獲取瀏覽器指紋可以用來做投票
          火狐Mozilla Firefox出現:無法載入您的Firefox配置文件 它可能已經丟失 或是無法訪問 問題解決集合處理辦法
          在Android、iOS、Windows、MacOS中微信小程序的文件存放路徑
          python通過代碼修改pip下載源讓下載庫飛起
          python里面requests.post返回的res.text還有其它的嗎
          更多>>隨機抽取信息
          Javascript JS 限制復選框的選擇個數(2)
          如何加快網站訪問速度
          石家莊燕趙旅行社有限公司
          深山旅行社網站管理系統 v1.3發布
          消聲器
          酒店客房預訂商建站解決方案
          88国产精品视频一区二区三区