Pythonの学習ノート(11)ファイル操作

まず、ファイルを読みます


 

最も一般的なファイルが読み込まれ、IO操作を記述しています。Pythonは、ファイルを読み書きするための関数の使用を内蔵、およびCは互換性があります。

ファイルを読み書きする前に、我々は最初のオペレーティングシステムによって提供されて読み込まれ、ディスクの機能上のファイルを書き込み、見​​ている、近代的なオペレーティングシステムが読み込まれ、開くために、オペレーティング・システムを要求しているファイルを書き込む、直接ディスクにプログラムの正常な動作を許可していません。ファイル・オブジェクト(通常、ファイルディスクリプタとも呼ばれる)、オペレーティング・システムによって提供されるインタフェースは、このファイル・オブジェクトから(ファイル読み込み)データを読み出し、またはファイルオブジェクト(ライト・ファイル)にデータを書き込みます。

ファイルオブジェクトを読み出しモードでファイルを開くには、使用して組み込みのPythonのopen()機能、ファイル名と識別子を渡します。

>>> f = open('/Users/michael/test.txt', 'r')

読み取りのための識別子は「r」、我々は成功したファイルを開くことができるようにします。

オープン= F(R&LT ' C:Users \ユーザー\ wuzongmei \デスクトップ\のname.txt '' R&LT ' )ファイル#を開くには、
ファイル = #は、ファイルの内容全体を読みf.read()、到達し、変数ファイルへのコピー
を印刷(ファイル)#印刷ファイルの内容の読み取り
f.closeを()#は、ファイルを閉じます

ファイルは読み取りおよび書き込み時にそこに発生することがありますのでIOError、エラー一度、後者はf.close()呼び出されません。そのため、エラーが適切にファイルを閉じることができたか否かを確実にするために、我々は使用することができますtry ... finally達成するために:

してみてください
    fは(オープン= ' /パス/ /ファイルに'' R ' 
    プリント(f.read())
最後にもしF:
        f.close()

しかし、あまりにも面倒であらゆるので、現実的なので、Pythonは導入with自動的に私たちが呼んで支援する声明close()方法:

(オープンと' /パス/ /ファイルに'' R 'として:F 
    プリント(f.read())

 

### f.read和f.readline、readlines

f.read()呼び出しはread()、ファイルはとても安全のために、破裂する10G、メモリを持っている場合、あなたは繰り返し呼び出すことができ、1回のファイルの内容全体を読みますread(size)方法を、それぞれがコンテンツのサイズのバイトを読み出します。

f.readline()の呼び出しは、readline()コンテンツの各ラインを読むことができます

f.readlines()を呼び出しreadlines()ラインとプレスリターンのすべての内容を読み取るための時間をlist

for line in f.readlines():
    print(line.strip()) # 把末尾的'\n'删掉

推奨事項:ファイルが小さい場合、read()一時間は最も便利読んで、あなたは、ファイルサイズを決定することができない場合は、繰り返し呼び出すread(size)より安全に、それは設定ファイルであれば、呼び出し、readlines()最も便利

 

###は、バイナリファイルを読み込み、

デフォルトでは、読むために、テキストファイルの前で話すと、UTF-8エンコードされたテキストファイルです。、などの画像、動画、などのバイナリファイルを、読み取るにして'rb'金型は、ファイルタイプを開くことができます。

F =オープン>>>(' /Users/michael/test.jpg '' RB '  >>> 達し、f.read()
B ' \ XFF \ xd8 \ XFF XE1 \ xOO \ x18Exif \ xOO \ xOO \ .. 。"#バイト16進表現

 

###非UTF-8のファイルを読み込み、

非UTF-8でエンコードされたテキストファイルを読み取るには、する必要があるopen()関数渡すencodingパラメータを、例えば、GBKエンコードされたファイルをお読みください。

>>>(オープン= F ' /Users/michael/gbk.txt '' R '、エンコード= ' GBK '  >>> f.read()
 ' 测试'

いくつかの非標準のコーディングは、あなたが発生する可能性のあるファイルを検出したUnicodeDecodeErrorテキストファイルに不正な文字エンコーディングの一部と混合することができるので、。このような場合に、open()さらに受信する機能番目のerrorsパラメータを符号化エラー処理が発生した場合の様子を示します。最も簡単な方法は、単に無視することです:

>>> F =オープン(' /Users/michael/gbk.txt '' R '、=コード' GBKを'、誤差= ' 無視'

 

遭遇したファイル操作ピットを読みます

   F =オープン( 'C:\ Users \ユーザーwuzongmei \デスクトップ\のname.txt'、 'R')

一つの問題:ファイルを開くエラー:(ユニコード・エラー)「unicodeescape」コーデックは位置2-3にバイトをデコードすることはできません:切り捨て\ UXXXXXXXXエスケープを

その後、我々が見つかりました:

Pythonでは  \は エスケープ文字で、\ Uは続くUNICODEエンコーディングを表し、そう\ユーザーは、ここに与えられます、文字列の前に追加します  R(ネイティブの文字列をrawstring)競合Pythonの正規表現の構文を避けるために、 !

解决:F =オープン(R'C:\ Users \ユーザーwuzongmei \デスクトップ\のname.txt」、 'R')

質問2:エラーを継続するには、再度実行します。OSErrorの:[errnoを22]無効な引数:「\ u202aC:\\ユーザー\\ wuzongmei \\デスクトップ\\ name.txt

パスは、私は単に別のコピーパスに1つの場所から書き込みを、セキュアなファイル属性を経由して直接タブをコピーしたので、私は、パス/ Uのリードがあることを疑うようになった、と長い時間のための解決策を見つけるために、好ましくは直接解決策を見つけるために、\ u202aを検索しますまたは手動で再入力し、それを解決しました。

質問3:ファイルが存在しません:FileNotFoundError: [Errno 2] No such file or directory: '/Users/michael/notfound.txt'

 

第二に、ファイルを書き込みます


 

ファイルの書き込みやドキュメントを読んで同じである、唯一の違いは、呼び出すことであるopen()識別子を渡し、関数'w''wb'テキストファイルを書き込んだり、バイナリファイルを書き込む示します。

F =オープン(R ' C:\ Users \ユーザーwuzongmei \デスクトップ\のname.txt '' W ' 
f.write(' こんにちは、世界' 
f.close()

あなたは、繰り返し呼び出すことができますwrite()ファイルに書き込むが、呼び出してくださいf.close()ファイルを閉じます。私たちは、ファイルを書き込むときに、オペレーティングシステムは、多くの場合、すぐにデータをディスクに書き込みますが、メモリにキャッシュされ、自由な時間、その後ゆっくりと書いていません。唯一の呼び出しclose()方法は、オペレーティング・システムは、データがすべてのディスクに書き込ま書かれていないことを確実にするためでした。呼び出すことを忘れclose()結果のみディスクに書き込まれるデータの一部であり、そして残りの部分が失われました。だから、まだ使用してwithより多くの保険文です:

オープンして(R ' C:\ Users \ユーザーwuzongmeiデスクトップの\ name.txt \ '' W 'のように、F:
    f.write(' こんにちは、世界!'

特定のテキストファイルのエンコーディングを書き込むには、与えてくださいopen()関数は渡されたencodingパラメータが自動的にエンコーディングを指定した文字列に変換されます。

靴はへの気配りができます'w'ファイルがすでに存在する場合、それは直接(ファイルを削除するには、新しいポストと同等の書き込み)カバーする、ファイルモードへの書き込み時。我々は、ファイルの末尾に追加したい場合はどのように行うには?

それは渡すことができ'a'APPEND(アペンド)モードで書かれました。

 

おすすめ

転載: www.cnblogs.com/wuzm/p/11562857.html