Pythonの:ファイル処理

まず、ファイルを開きます

【パイソン】平面図コピー
のOpenFile =オープン(「../ファイル/ exampleFile.txt」、 『A』)
説明:
1.最初のパラメータは、パスを含むファイル名が./相対パスであってもよい、とすることができます絶対パス「D:\ test.txtの」;
前記第2のパラメータはR&LTを含む、オープンモードのモードであり、W、R&LT +
「R&LT」:ファイルが存在しない読み取り専用(デフォルト場合、エラーがスローされます。 )

FileNotFoundError:[errnoを2]いいえそのようなファイルやディレクトリは「../Files/exampleFile.txt」
『W』:書き込み専用(ファイルが存在しない場合は、ファイルを作成します)、ファイル一般的にW
『A』:ファイルに添付終了(ファイルが存在しない場合、ファイルを作成する)
「+ R&LTを」:書き込み(ファイルが存在しない場合、エラーがスローされる)
FileNotFoundError:[エラー番号2]このようなファイルまたはディレクトリ:」../Files/exampleFile.txt 「
あなたはバイナリモードでファイルを開くために必要がある場合は、など、 『RB』 『WB』、一般的に使用される画像のWBとして、バックモードで文字『b』を追加する必要があります

第二に、コンテンツを読み取る
1. openFile.read(サイズ)
パラメータは、省略することができるリードサイズの数を表します。あなたはサイズパラメータを省略すると、ファイルのすべての内容を読み取ります。
2. openFile.readline()
ファイルの行の内容を読み取る
3. openFile.readlines()
[LINE1、LINE2、...リネン]アレイ内のすべての行を読み取ること 。メモリ内のすべてのファイルの内容をロードしないでください、この方法は、多くの場合、効率の改善を容易にするために使用されます。
あなたは、ファイルの内容を表示したい場合は、プリントに印刷する必要があります。print(openFile.readline())

第三に、ファイルの書き込み
1. openFile.write(「サンプルの\ n」の )
文字列の最後にファイルに文字列、書き込み側が、追加しなければならない場合には「\ n」をした後、openFile.closeは()ファイルをクローズ
オーバーレイコンテンツ場合、パラメータ「W」カバレッジ、追加コンテンツ、必要に応じて、パラメータが「」ファイルの末尾に追加ファイルを開くときに必要

第四に、内のファイルの内容を探します
)1.openFile.readを(
openFile.readline(もし再び、到達されたファイルの内容を読んだ後、ファイルポインタの終わりに)、コンテンツの読み取りが空であることがわかります
あなたは再び第1を読みたい場合は:行は、開始位置にファイルポインタを位置決めする必要がある
2.openFile.seek(0)
バイト単位で)次のように、この関数のフォーマットがある:openFile.seek(from_whatオフセット)
from_whatオフセット、読み取りを開始する位置を示しているから表しますfrom_whatは、その後距離を一定量移動し、
このようなopenFile.seek(28.0)を対象文字0と28文字まで後退を表します。0のfrom_what値は、文書が始まり、デフォルトは0で、それは省略することができ、ファイルの先頭を示します。

第五に、ファイルの解放資源閉じ
1.openFile.closeを()
ファイル操作が完了すると、我々は(ファイルf.closeを閉じるために覚えておく必要があります)、あなたは他のプログラムのためのリソースを解放することができます

第六に、ファイルに書き込まれた内容の読み取り
(「../ファイル/ file.txtは」オープンを 『A』、)。書く(openFile.read())
私たちは、追加入金する必要があるコンテンツの取得を読み込みますファイル

私たちは、一般的に操作手順があるファイル:
1.ファイル>ファイルを読む>ファイルを閉じます

[Pythonの]プレインビューのコピー

のOpenFile =オープン( '../ファイル/ exampleFile.txt'、 'R&LT')
印刷( "すべてのコンテンツを読む:\ N-" + openFile.read())
openFile.seek(0)
印刷( "最初の行は読みます:\ n - '+ openFile.readline())
openFile.seek(28.0)
"の内容は、28文字バック開始位置を読む:「プリント(+ openFile.read( ))
openFile.close()
>ファイルを開くファイル]> [閉じるファイルを書き込む2.

【パイソン】図無地コピー
のOpenFile =オープン( '../ファイル/ exampleFile.txt'、 'A')
openFile.write( 'サンプルの\ n')
openFile.close()

3. [ファイル]> [ファイルを読む>ファイルを読み込むには、新しいファイルに書き込まれます>ファイルを閉じます

[Pythonの]プレインビューのコピー
のOpenFile =オープン( '../ファイル/ exampleFile.txt'、 'R&LT')
印刷( "すべてのコンテンツを読む:\ N-" + openFile.read())
openFile.seek(0)
印刷( "最初の行は読みます:\ n - '+ openFile.readline())
openFile.seek(28.0)
"の内容は、28文字バック開始位置を読む:「プリント(+ openFile.read( ))
openFile.seek(0)
オープン( '../ファイル/ file.txtを'、 'A')を。書く(openFile.read())
openFile.close()

 

ファイルを読みます

)(openメソッドを使用して(反復である)(オープン・ファイル・オブジェクトに戻り、)ファイルを開きます。

F =オープン>>>( 'test.txtの'、 'R&LT')
R&LT表現は、テキストファイルであり、Rbはバイナリファイルです。(このモードでは、パラメータrのデフォルト値)

ファイルが存在しない場合、open()関数は例外IOErrorのエラーをスローし、エラーコードに関する詳細情報を提供し、ファイルが存在しないことを教えてくれます。

F =オープン>>>( 'test.txtの'、 'R&LT')
トレースバック(最新のラストコール):
ファイル"<STDIN>"、1行目、<Module1を>インチ
FileNotFoundError:[errnoを2]ファイルまたはディレクトリないなど:「のtest.txt」
のファイルを同時に開くことができるファイルの数が限られているファイルオブジェクトは、オペレーティングシステムリソースを占有しますので、使用が終了した後に閉鎖され、オペレーティングシステムする必要があります

>>> f.close()
により例外IOError)(バックf.close、エラーと、ファイルの読み書きを生成する可能性があると呼ばれることはありません。そのため、エラーが適切にファイルを閉じることができたか否かを確実にするために、我々は試す使用することができます...最終的に実現されます。


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

しかし、あまりにも面倒であらゆるので、現実的なので、Pythonは自動的に私たちはclose()メソッドを呼び出す支援する声明を導入しました:

:( '/パス/ /ファイルに'、 'R&LT')F ASとのオープン
プリント(達し、f.read())
Pythonのファイルオブジェクトが3つ提供する"読み取り"方法:(、)(のreadline()とreadlinesを読み取ります) 。各方法は、各時刻を読み取るデータの量を制限するために変数を受け入れることができます。

それぞれがファイル全体を読む)(読み取り、ファイルは、典型的には、文字列変数にコンテンツを使用されています。ファイルが使用可能なメモリよりも大きい場合、あなたは何度読んで(サイズ)メソッドを呼び出すことができ、安全のために、それぞれがコンテンツのサイズのバイトを読み出します。
差は、()readlinesが.readように、後者一度ファイル全体を読み取る()と同じです。行のリストにファイルの内容を解析し.readlines()は自動的に、このリストはで...のためのPythonの構造によって処理することができます....
readlineの()のみ)(通常ははるかに遅いreadlinesよりも、1本のラインを毎回読み込みます。一度ファイル全体を読み込むための十分なメモリがない場合にのみ、あなたは()のreadlineを使用する必要があります。
注:これらの三つの方法は、各行の終わりである「\ n」を読んで来た、それはにデフォルト設定はありません「\ n」を削除、我々は手動で削除する必要があります。

[2]:F1としてオープン( 'test1.txtという'、 'R')との
LIST1 = f1.readlines()
LIST1:[3]における
OUT [3]:[ '111 \ n'は、「222 \ nは」、 '333 \ n'は、 '444 \ n'は、 '555 \ n'は、 '666 \ n']
去掉'\ n'は


[4]:F1としてオープン( 'test1.txtという'、 'R')との
LIST1 = f1.readlines()
の範囲内のiについて(0、LEN(LIST1)):
LIST1 [I] = LIST1 [I] .rstrip( 'の\ n')
[5]において:LIST1
OUT [5]:[ '111'、 '222'、 '333'、 '444'、 '555'、 '666']

読み取り()とreadlineの()の場合は「\ n」を読んでですが、通常の表示を印刷することができたときに(であるため、印刷の「\ n」は改行を意味すると考えられています)


F1オープン( 'test1.txtという'、R '')を有する:[7]で
LIST1 = f1.read()
で[8]:LIST1
OUT [8]:「111 \ N222 \ N333 \ N444 \ n555 \ n666の\ n」
[9]において:プリント(LIST1)
111
222
333
444
555
666

IN [10]:F1としてオープン( 'test1.txtという'、 'R')との
LIST1 = f1.readline()
[11]で:LIST1
OUT [11]: '111 \ n'の
プリント:[12]に(LIST1)
111

Pythonの顔の質問の例:

二つのファイル、多くの行のIPアドレスを持つ各2つのファイルに同じIPアドレスを見つけることがあります。


#のコード:UTF-8
インポートが二分

:( 'test1.txtという'、 'R')f1とオープンと
LIST1 = f1.readlines()
:Iの範囲内(0、LEN(LIST1))のための
LIST1 [I] = LIST1 [I] .strip( '\ ')N
(test2.txtという名前「、 'F2としてR')オープンと'
LIST2 = f2.readlines()
の範囲内のiについて(0、LEN(LIST2):
LIST2 [I] = LIST2 [I] .strip ( '\ n')で

list2.sort()
LENGTH_2 = LEN(LIST2)
same_data = []
iについてLIST1で:
POS = bisect.bisect_left(LIST2、I)
であればPOS <LEN(LIST2)とLIST2 [POS] == I:
same_data.append( ⅰ)
same_data =リスト(セット(same_data))
プリント(same_data)

点は、(1)(2)加工ラインの末尾に「\ n」は(3)効率を向上させるために二分探索アルゴリズムを用いました。(4)迅速に再設定するために使用します。

 

ファイルを書きます

ファイルを書き込み、ドキュメントを読むと同じ、唯一の違いは、コールが開くようにということである()関数で、入ってくる識別子「w」と「wb」の書き込みテキストファイルまたはバイナリファイルを記述します。

>>> F =オープン( 'test.txtの' 、 'W')# 'WB'は、バイナリファイルの書き込みと言う場合
>>> f.write( 'こんにちは、世界!')
>>> f.close()
注:「W」は、これは江紫モードです:あなたが作成し、このファイルがない場合は、もしそうなら、それは最初に、元のファイルの内容を消去し、新しい何かを書き込みます。だから我々は、オリジナルのコンテンツをクリアするが、「」このモードでの使用に、背中に直接新しいコンテンツを追加していない場合。

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

F AS( 'test.txtの'、 'W')とのオープン:
( '!こんにちは、世界')f.write
Pythonのファイルオブジェクトが2つの"書き込み"のアプローチを提供:書き込み()とwritelinesを()。

write()メソッドとリード()、のreadline()メソッドは、文字列に対応するファイルに書き込まれます。
だけでなく、操作リストの対応するwritelines()メソッドとreadlines()メソッド。ファイルに書き込むために、文字列のリストをパラメータとしてそれを受け取り、改行は自動的に追加されていないので、明示的な改行に参加が必要です。

オープン= F1( 'test1.txtという'、 'W')
([ "1" " 3" 、 "2"])f1.writelines
このとき#1 test1.txtという内容である:123

オープン= F1( 'test1.txtという'、 'W')
([ "3 N- \"、 "N- \ 2" "N-1 \"、])f1.writelines
次のように、この時に#test1.txtという内容である:
#1
#2
#3

 

オープン()モード・パラメータ:

'R':読みます

'W':書き込み

'A':追加

R '+' == R + W(読み書き可能な、ファイルにエラー(例外IOError)上に存在する場合)

+ R W「W +」==(読み取りと書き込みは、ファイルが存在する場合に作成されます)

'Aは、+'(書き込み可能で作成したファイルが存在する場合、追加することができる)+ rを==します

対応、それはバイナリファイルであるならば、あなたは千万bを追加することができます。

'RB' は '私たちは、' '赤ちゃん' 'RB +' '+' 苦い '私は+' を

 

file_obj.seek(オフセット、そこ= 0)

file_obj.seek(オフセット、そこ= 0)メソッドは、ファイルのファイルポインタを移動させるために使用されます。オフセットはどのように多くのオフセットを示します。開始オフセットする場所をどこからオプションパラメータは、デフォルトでは、ファイル、ファイルの終わりのための現在の位置1、2の始まりのために0であることを示します。例えば:


オープン= F( "test1.txtという"、 "A +")
を印刷(達し、f.read())
f.write(」1' )
先頭に終わりからf.seek(0、0)#ファイルポインタ、そうではありません次の文章を読まされる()が正しいことをより少ない出席
印刷(f.read())
f.close()

注:のみ「W」とに、ファイルポインタは「R」に適用される変更「」は、「W」である場合に動作しません、書き込み()は、常に後方位置に対応する書き込みの開始(上書きからコンテンツ)、それは「」そして、(書き込みでは)常に追加最後から開始します。

文字コード

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

F =オープン>>>( 'test.txtの'、 'R'、エンコード= 'GBK')
>>> f.read()
'試験'
ファイルは、あなたが発生する可能性があるいくつかの非標準のエンコーディングに遭遇しているUnicodeDecodeError、テキストファイルに不正な文字エンコーディングの一部と混合することができるので。経験がどのようにコーディングエラー処理を示している場合、このようなケースでは、open()関数も、パラメータ誤差を受けます。最も簡単な方法は、単に無視することです:

>>> F =オープン( 'のtest.txt'、R ''、= 'GBKを' コード、エラー= '無視')

おすすめ

転載: www.cnblogs.com/cathyS/p/10956076.html