ホームページ >バックエンド開発 >Python チュートリアル >Python の高度なファイルとストリーム
要約: ファイルとストリームに対する Python の操作は基本的に他のプログラミング言語と同じであり、ステートメントは他の言語よりもさらに簡潔です。これら 2 つのオブジェクトに加えて、ファイル関数とストリーム関数もファイルのようなオブジェクト、つまり読み取りのみをサポートし書き込みはサポートしない Python のストリーム関数も対象としています。この記事ではPythonでよく使われるファイルやストリームの操作関数と操作方法を紹介します。
open(name[, mode[,buffering]]): ここで、name はファイルへのパスです。
Python で一般的に使用されるファイル モード:
r : 読み取り専用モード
w: 上書きモード
a: 拡張モード
b: バイナリモード (通常、他のモードと併用)
+: 追加モード (通常、他のモードと併用)このうち、オープン関数モードのデフォルト値は読み取り専用モードです。バッファリング関数は True または False で、ファイルに対してメモリ アクセラレーションを実行するかどうかを示します。
readline([size]): テキストの次の行を読みます。 size は、読み取られ、変更された文字数を表します。 Python では、readline を使用してコンテンツの全行を一度に読み取ることができ、readlines を使用してコンテンツの全行を一度に読み取ることができます。
write(string): ファイルに特殊文字を書き込みます
注: wirte メソッドは元のファイルをクリアしてから、既存のスクリプトのデータを書き込みます。ただし、同じスクリプトで write を連続して呼び出しても、前のステートメントによって書き込まれた内容は上書きされませんが、前の書き込み位置の後に新しい内容が追加されます。
出典: Baidu Netdisk Search
"//其中somefile.txt含有文本 $ cat somefile.txt | python somescript.py # somescript.pyimport sys text = sys.stdin.read() words = text.split() wordcount = len(words)print 'Wordcount:', wordcount
Python の 3 つの標準ストリーム形式、sys.stdin、sys.stdout、sys.stderr を使用できます。
特定のケースでは位置の読み取りと書き込み: シーク関数とテル関数:
Python では、シーク関数とテル関数を使用して、現在のファイル内の次の読み取り文字の位置を取得できます。 サンプル コードは次のとおりです。
f = open(r'text\somefile.txt', 'w') f.write('01234567890123456789') f.seek(5) f.write('Hello, World!') f.close() f = open(r'text\somefile.txt')print f.read() 结果:01234Hello, World!89>>> f = open(r'text/somefile.txt')>>> f.read(3)'012'>>> f.tell()3L
l = ["it is a gooday!", "Hello, world!", "Thanks"]with open(r'text/RWLines.txt', 'w') as f:for eachStr in l: f.write(eachStr + "\n")""" This is wrong because file is already closed after with clause: f.read(2) """
また、flush メソッドを呼び出すと、ストリーム内の現在の I./O キャッシュ情報がクリアされます。キャッシュ処理に関しては、次の 2 つの共通点を参照できます。メソッド:
while True:char = f.read(1)if not char: break process(char) f.close()while True: line = f.readline()if not line: break process(line) f.close()
©
以上がPython の高度なファイルとストリームの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。