読み取りと書き込みのファイル、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 /')
`` `- 結果:
- ファイルを書き込みます。
コード:
`` ` #
書き込みファイル:ファイルの読み書きファイルが同じである、唯一の違いは、呼び出しは()関数を開くためにということで、入ってくる識別子が「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()
```
- 読み込みファイル:Pythonは、)(オープン組み込み関数を使用してファイル名を渡し、および識別子
- 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())
`` `