Python22ファイルは読み取りと書き込み、StringIOを、BytesIO

読み取りと書き込みのファイル、StringIOを、BytesIO

  • IOプログラミング:https://www.liaoxuefeng.com/wiki/1016959663602400/1017606916795776
    - - -
  • ファイルの読み書き:ファイル読み出し要求及び書き込み(一般に、ファイル・ディスクリプタと呼ぶ)ファイルオブジェクトを開くためのオペレーティング・システムであり、オペレーティング・システムによって提供されるインタフェースは、オブジェクトファイルから(ファイル読み込み)データを読み出し、又はデータを書き込みますこのファイルオブジェクト(ファイル書き込み)へ。
    • 読み込みファイル:Pythonは、)(オープン組み込み関数を使用してファイル名を渡し、および識別子
      • コード:
        `` `
        は、オブジェクトファイルがのReadme.txtで、ファイルを読む「R」は読み取り専用表すファイルが例外IOError存在しない場合は、それがスローされます
        F =オープン(「のReadme.txt」、「R」)
        コンテンツ= F.を#は、ワンタイム・ファイルの内容全体を読み取る)(読み取り、Pythonがメモリの内容を読み取り、オブジェクトは、STRので表される
        プリント(コンテンツ)
        ()#ファイルを閉じ、ファイルは、使用後に閉じなければならないf.closeファイルオブジェクトなぜならオペレーティングシステムリソースの占有
        #は、1. 2.ファイルは、ファイルを閉じ、ファイル3を読んで開いているファイルの三部作を読んで

        例外IOError:ファイルの読み取りと書き込みが例外IOErrorを生成する可能性があるに起因して、エラー一度、バックf.close()が呼び出されることはありません

        試してください:
        F1 =オープン( 'read.txt'、 'R')
        プリント(f1.read())
        最後に:
        もしF1:
        f1.close()

        #で:あまりにも面倒なので、Pythonのは、声明で導入された内のすべてのように現実的には、自動的に呼び出すclose()メソッドたちを支援する
        オープン(「read.txt」、「と #を:FとしてR」) の前にしてみてください...最終的には同じですが、コードが良くシンプルで、かつf.close()メソッドを呼び出す必要はありません。
        印刷(f.read())

        #読む(サイズ) - 1つのバイトのコンテンツを読み取る
        開くと( 'のReadme.txt'、 'R&LT')F AS:
        #4バイトが読み取ら
        プリント(f.read(4))

        #readline() -行の内容を読み取る
        を開くと( 'のReadme.txt'、 'R&LT')F AS:
        プリント(f.readline())

        - #Readlines()行ずつ読み出し行は、すべてのコンテンツリストを返した
        :( 'のReadme.txt'、 'R&LT')Fなどのオープンで
        linelst f.readlines =()
        ラインについてlinelst中:
        プリント(line.strip() )

        #バイナリファイル: 'RB'モードでファイルを開き、などの写真、ビデオ、などのバイナリファイルを、読み
        F ASオープンで( 'image.png'、 'RB'):
        印刷(f.read())
        文字エンコード:非UTF-8でエンコードされたテキストファイルを読み取り、それは符号化パラメータを渡す()関数を開くために必要な、例えば、GBK符号化されたファイルを読み込む:
        オープン(「gbk.txt」、「R&LT」、エンコード=「GBK」と)F AS:
        印刷(f.read())

        #受信エラーをエラー処理コーディング
        F =オープン( 'R&LT'、エンコード= 'GBK'、誤差= '無視' 'ユーザ/マイケル/ gbk.txt /')
        `` `
      • 結果:
        nuC4O0.png
    • ファイルを書き込みます。
      • コード:
        `` `
        書き込みファイル:ファイルの読み書きファイルが同じである、唯一の違いは、呼び出しは()関数を開くためにということで、入ってくる識別子が「W」または書き込みのテキストファイルのための「WB」やバイナリファイルを書き込む
        W =オープン(「write.txt」、「W」 )「W」#は何のファイルがファイルを持っていないときに、ファイルが作成されますが、元のファイルが上書きされます
        w.write(「こんにちは」)
        )(w.close

        # 'a' 文件末尾追加内容
        with open('write.txt','a') as w: # as w 即 w = with open('write.txt','a')
        w.write('python3')

        # 写特定编码的文件
        w = open('write.txt','w',encoding='gbk')
        w.write('gbk')
        w.close()
        ```
  • StringIO: 在内存中读写str
    • 代码:
      ```
      # String IO:在内存中读写str
      from io import StringIO
      f = StringIO()
      print(f.write('hello')) # 打印字节数
      print(f.getvalue()) # getvalue()获取内存中的str

      # 读
      r = StringIO('hello\nworld!')
      while True:
      s = r.readline()
      if s == '':
      break
      print(s.strip()) # 替换换行 \n
      ```
  • BytesIO:BytesIO实现了在内存中读写bytes
    • コード:
      `` `
      #BytesIO:動作バイナリデータ
      IOインポートBytesIOから
      W = BytesIO()
      ノート書き込みをstrが、UTF-8でエンコードされたバイトの後ではないこと。
      印刷(w.write( '幸運に!'。 'UTF-(エンコード 8')))# バイトの印刷
      印刷(w.getvalue())#は、バイナリ値を取得し、

      #读
      R = BytesIO(B '\ xe5 \ xa5 \ XBD \ xe8 \ XBF \ X90 \ XE6 \ x9d \ xa5 \のXeF \ XBC \ X81')
      プリント(r.read())
      `` `

おすすめ

転載: www.cnblogs.com/thloveyl/p/11470183.html