Python でのテキスト ファイルの連結: エレガントなアプローチ
複数のテキスト ファイルを操作する場合、多くの場合、それらを 1 つのテキスト ファイルに連結する必要があります。ファイル。各ファイルを 1 行ずつ手動で開いて読み取ることは実行可能なオプションですが、エレガントさと効率性に欠けます。
最適化されたソリューション
幸いなことに、Python はエレガントで効率的なソリューションを提供します。テキスト ファイルを連結するためのソリューション。シンプルかつ効果的なアプローチを次に示します。
filenames = ['file1.txt', 'file2.txt', ...] with open('path/to/output/file', 'w') as outfile: for fname in filenames: with open(fname) as infile: outfile.write(infile.read())
このアプローチの利点
追加メモ
非常に大きなファイルの場合は、読み取るのではなく 1 行ずつ連結した方が効率的である可能性があります。内容全体をメモリに保存します。このような場合の代替アプローチは次のとおりです。
with open('path/to/output/file', 'w') as outfile: for fname in filenames: with open(fname) as infile: for line in infile: outfile.write(line)
この方法は低速ですが、必要なメモリ フットプリントは小さくなります。
もう 1 つの興味深いアプローチは、 itertools.chain.from_iterable() 関数を使用して、すべてのファイルのすべての行を反復処理します:
filenames = ['file1.txt', 'file2.txt', ...] with open('path/to/output/file', 'w') as outfile: for line in itertools.chain.from_iterable(itertools.imap(open, filnames)): outfile.write(line)
このメソッドには、より簡潔であるという利点がありますが、ガベージ コレクターが処理する必要があるオープン ファイル記述子が残ります。
要約すると、一般に、最初のアプローチはテキスト ファイルを連結するための最も効率的で洗練されたソリューションですが、代替案は特定のシナリオにより適しています。
以上がPython で複数のテキスト ファイルを効率的に連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。