Menggabungkan Fail Teks dalam Python: Pendekatan Elegan
Apabila bekerja dengan berbilang fail teks, selalunya menjadi perlu untuk menggabungkannya menjadi satu fail. Walaupun membuka dan membaca setiap fail baris demi baris secara manual adalah pilihan yang berdaya maju, ia tidak mempunyai keanggunan dan kecekapan.
Penyelesaian Dioptimumkan
Nasib baik, Python menyediakan yang elegan dan cekap penyelesaian untuk menggabungkan fail teks. Berikut ialah pendekatan yang mudah tetapi berkesan:
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())
Faedah Pendekatan ini
Nota Tambahan
Untuk fail yang sangat besar, mungkin lebih cekap untuk menggabungkannya baris demi baris berbanding membaca keseluruhan kandungan ke dalam ingatan. Berikut ialah pendekatan alternatif untuk kes sedemikian:
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 lebih perlahan tetapi memerlukan jejak memori yang lebih kecil.
Satu lagi pendekatan menarik ialah menggunakan fungsi itertools.chain.from_iterable() untuk lelaran ke atas semua baris dalam semua fail:
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)
Walaupun kaedah ini mempunyai kelebihan menjadi lebih ringkas, ia meninggalkan deskriptor fail terbuka yang mesti dikendalikan oleh pemungut sampah.
Ringkasnya, pendekatan pertama biasanya merupakan penyelesaian yang paling cekap dan elegan untuk menggabungkan fail teks, manakala alternatif boleh lebih sesuai untuk senario tertentu.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Fail Teks Berbilang dengan Cekap dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!