ホームページ >バックエンド開発 >Python チュートリアル >ファイルおよびファイル オブジェクトを読み書きするための Python メソッド
1.open
open を使用してファイルを開いた後、忘れずにファイル オブジェクトの close() メソッドを呼び出す必要があります。たとえば、try/finally ステートメントを使用すると、ファイルを最終的に閉じることができるようになります。
file_object = open('thefile.txt')
try:
all_the_text = file_object.read( )
finally:
file_object.close( )
注: open ステートメントは try ブロックに入れることはできません。ファイルがオープンされるときに例外が発生すると、ファイル オブジェクト file_object は close() メソッドを実行できません。
2. ファイルを読み取る
テキスト ファイルを読み取る
input = open('data', 'r')
#2 番目のパラメータのデフォルトは r
input = open('data')
バイナリ ファイルを読み取る
input = open('data', 'rb')
すべてのコンテンツを読み取る
file_object = open('thefile.txt')
try:
all_the_text = file_object.read( )
finally:
file_object.close( )
読み取り固定bytes
file_object = open('abinfile', 'rb')
try:
while True:
chunk = file_object.read(100) if not chunk:
Break do_something_with(chunk)
finally :
file_object .close( )
各行を読み取る
ファイルがテキスト ファイルの場合は、ファイル オブジェクトを直接走査して各行を取得することもできます:
file_object の行:
3.ファイル
テキストファイルの書き込み
バイナリファイルの書き込み
書き込みファイルの追加
データを書き込む
file_object.write(all_the_text)
file_object.close( )
複数行を書き込む
file_object.writelines(list_of_text_strings) )
writeline を呼び出して複数行を書き込む方が、write を使用して一度に書き込むよりもパフォーマンスが高くなることに注意してください。
ログ ファイルを処理するとき、次のような状況がよく発生します。ログ ファイルが巨大で、一度にファイル全体をメモリに読み込んで処理することが不可能です。たとえば、ログ ファイルをコンピュータで処理する必要があります。 2GB の物理メモリの場合、一度に処理できるのはその内容の 200MB のみです。
Python では、組み込みの File オブジェクトが、このようなことを実現するための readlines(sizehint) 関数を直接提供します。次のコードを例に挙げます。
file = open('test.log', 'r')sizehint = 209715200 # 200Mposition = 0lines = file.readlines(sizehint)while not file.tell() -position
readlines(sizehint) 関数が呼び出されるたびに、約 200MB のデータが返され、ほとんどの場合、返されるデータは完全な行データである必要があります。 , 返されるデータのバイト数は、sizehint で指定した値よりもわずかに大きくなります (readlines(sizehint) 関数が最後に呼び出された場合を除く)。通常、Python はユーザー指定の sizehint 値を内部キャッシュ サイズの整数倍に自動的に調整します。
file は Python の特別なタイプで、Python プログラムで外部ファイルを操作するために使用されます。 Python ではすべてがオブジェクトであり、File も例外ではありません。ファイル メソッドと属性があります。まず、ファイル オブジェクトの作成方法を見てみましょう:
•file(name[, mode[,buffering]])
file() 関数は、ファイル オブジェクトを作成するために使用されます。これには、open() というエイリアスがあります。どちらのほうがわかりやすいかもしれません。一部の機能は組み込み関数です。そのパラメータを見てみましょう。そのパラメータはすべて文字列の形式で渡されます。 name はファイルの名前です。
mode はオープン モードで、オプションの値は r wa a U で、それぞれ読み取り (デフォルト) と書き込みのさまざまな改行をサポートするモードを表します。 w または a モードでファイルを開く場合、ファイルが存在しない場合は自動的に作成されます。また、w モードを使用して既存のファイルを開く場合、初期ファイル操作マークがファイルの先頭にあるため、この時点で書き込み操作を実行すると、元のファイルの内容は消去されます。間違いなく削除されます。歴史的な理由により、改行文字にはシステムごとに異なるモードがあります。たとえば、Unix では n ですが、U モードでファイルを開くと、すべての改行モードがサポートされます。これは、「」を意味します。 r' 'n' 'rn' はすべて改行を表すことができ、このファイルで使用される改行文字を格納するために使用されるタプルがあります。ただし、改行にはさまざまなモードがありますが、Python で読み取る場合は代わりに n が使用されます。モード文字の後に、2 つの記号 + b t を追加することもできます。これらは、それぞれ、ファイルの読み取りと書き込みを同時に行うことができ、ファイルをバイナリ モードまたはテキスト モード (デフォルト) で開くことができることを示します。
buffering 0 の場合はバッファリングなしを意味し、1 の場合は「行バッファリング」を意味し、1 より大きい数値の場合はバッファーのサイズを意味します (バイト単位である必要があります)。
ファイル オブジェクトには独自のプロパティとメソッドがあります。まずはファイルの属性を見てみましょう。
•closed #ファイルが閉じられているかどうかをマークし、close()によって書き換えられます
•encoding #ファイルエンコード
•mode #オープンモード
•name #ファイル名
•newlines #ファイルで使用される改行モードはタプルです
•softspace #boolean 型 (通常は 0) は、読み書きに使用されると言われています print