Apabila berurusan dengan berbilang fail teks, keperluan untuk menggabungkannya menjadi satu fail sering timbul. Semasa menggunakan pendekatan baris demi baris dengan kaedah open(), readline(), dan write() mungkin kelihatan mudah, ia tidak mempunyai keanggunan.
Python menawarkan kaedah yang lebih canggih untuk tugasan ini. Pertimbangkan pendekatan berikut:
Untuk Fail Besar:
filenames = ['file1.txt', 'file2.txt', ...] 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)
Kaedah ini berulang melalui setiap fail, membaca dan menulis baris secara berurutan. Ia cekap untuk fail besar.
Untuk Fail Kecil:
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())
Untuk fail yang lebih kecil, pendekatan ini membaca keseluruhan kandungan setiap fail sekaligus, mengurangkan bilangan operasi fail.
Penggunaan Alternatif itertools:
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)
Kaedah ini menggunakan modul itertools untuk mengulangi baris merentas berbilang fail seolah-olah ia adalah satu senarai. Ia kurang cekap memori tetapi boleh dianggap sebagai pendekatan yang menarik.
Dengan menggunakan teknik yang lebih elegan ini, anda boleh menggabungkan fail teks dalam Python dengan lebih mudah dan cekap, memenuhi senario yang melibatkan kedua-dua fail besar dan kecil.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Fail Teks dengan Elegan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!