ホームページ >バックエンド開発 >Python チュートリアル >Pythonでファイルを読み書きするにはどうすればよいですか?

Pythonでファイルを読み書きするにはどうすればよいですか?

Robert Michael Kim
Robert Michael Kimオリジナル
2025-03-10 18:46:49323ブラウズ

Pythonでファイルを読み書きするにはどうすればよいですか?

Pythonは、組み込み関数を使用してファイルと対話するための簡単な方法を提供します。コア機能は、 open()関数を中心に展開します。これは、ファイルパスとモードを引数として取得します。読み書きを検討しましょう:

読み取りファイル:

ファイルを読むには、通常、 open()関数を使用し、 read> read() readline() readlines() readlines( content。

 <code class="python"> #end =&quot;&quot; prevents extra newline # Read all lines into a list file.seek(0) lines = file.readlines() print(lines) except FileNotFoundError: print("File not found.") except Exception as e: print(f"An error occurred: {e}") </code>

This example demonstrates three ways to read: read() reads everything at once, iterating の行のを使用して行ごとに読み取り、<code> readlines()はすべての行をリストに読み取ります。 open(...)as as file: constractがエラーが発生した場合でもファイルが自動的に閉じられていることを保証します。 write()メソッドはファイルにコンテンツを追加します。

 <code class="python"> try:with open(&quot; my_new_file.txt&quot; w&quot;)as file.write(&quot; \ n&quot;&quot;&quot;&quot;&quot; open(&quot; my_new_file.txt&quot;、&quot; a quot;)as file:#append mode file.write(&quot;この行は追加されます。すでに存在する場合は失敗します。適切なラインブレークのために、新しいライン文字(<code> \ n </code>)を含めてください。読み取り用のファイル。これはデフォルトモードです。ファイルが存在しない場合にエラーが発生します。 <li> <strong> 'W'(write):</strong>書き込み用のファイルを開きます。存在しない場合は新しいファイルを作成し、コンテンツが実行された場合に上書きします。ファイルが存在する場合、エラーが発生します。</li> <li> <strong> 'a'(append):</strong>書き込み用のファイルを開きます。ファイルが存在する場合、新しいデータが最後まで追加されます。それ以外の場合、新しいファイルが作成されます。</li> <li> <strong> 'B'(binary):</strong>他のモード( 'rb'、 'wb'、 'ab'、 'xb')と併用します。非テキストファイル(画像、実行可能ファイルなど)に適したバイナリモードでファイルを開きます。これはデフォルトモードであり、テキストファイルに使用されます。システムの慣習に従って新しいライン文字を処理します。ファイルへの読み書きの両方を許可します。 'r'を使用すると、最初から読み書きができます。「w」上書き、および「a」の付録。</li>  <p>これらのモードを組み合わせることができます。たとえば、<code>&quot; r b&quot; </code>は、バイナリモードでの読み取りと書き込みの両方のファイルを開きます。堅牢なコードはこれらを優雅に処理する必要があります。最も一般的なアプローチは、<code> try-except </code>ブロックを使用することです:</p> <pre class="brush:php;toolbar:false"> <code class="python"> try:try:with open(&quot; my_file.txt&quot;&quot; r&quot;)をファイルとして:#...ファイル操作... filenotfounderror:filenotfounderror:print(&quot; quot;&quot; &quot; w&quot;)as file:file.write(&quot; quot; quot;)を除くpermissionerror:print(&quot; quot; quot; quot; quot; quot; quot; quot; quot; quot; quot; quot; quot; quot; quot; quot; quot;)を除くoserrorを除くe:印刷(f&quot;オペレーティングシステムエラーが発生しました:{e}&quot;&quot; {e}&quot;)</code> 

この例では、特定の例外( filenotfounderror permissError oserror )をキャッチします。エラーを効果的に処理するために可能な場合は常に具体的になります。いくつかのベストプラクティスを次に示します。

  • 繰り返し行ごとに:ファイル全体を一度にメモリにロードすることは避けてください。最初の例に示すように、
ループに対してループを使用して、行ごとにファイルを繰り返します。これは大規模なファイルのメモリ効率が大幅に効率的です。発電機を使用すると、メモリ効率がさらに向上する可能性があります。ジェネレーターは、ファイル全体をメモリにロードすることを避けて、需要の高い値を生成します。これにより、メモリの使用量が最小限に抑えられ、進行状況の更新が可能になります。
  • メモリマッピング:大きなファイルへのランダムアクセスについては、 mmap (メモリマッピング)を使用することを検討してください。これはファイルの一部をメモリにマッピングし、ファイル全体をロードせずに特定の部品に効率的にアクセスできるようにします。 #chunk#...アプリケーションとファイルへのアクセス方法。シーケンシャル処理の場合、ラインごとに繰り返し、またはバッファリングされたI/Oを使用するだけで十分です。ランダムアクセスの場合、メモリマッピングがより適している場合があります。利用可能なRAMを超える非常に大きなファイルについては、 dask vaex などの専門ライブラリを使用することを検討してください。
  • 以上がPythonでファイルを読み書きするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。