Kadangkala, kita perlu menghantar fail yang besar kepada orang lain, tetapi disebabkan keterbatasan saluran penghantaran, seperti had saiz lampiran e-mel, atau keadaan rangkaian tidak begitu baik, kita perlu membahagikan yang besar fail ke dalam fail kecil dan hantar beberapa kali , hujung penerima kemudian menggabungkan fail kecil ini. Hari ini saya akan berkongsi bagaimana untuk memisahkan dan menggabungkan fail besar menggunakan Python.
Jika ia adalah fail teks, ia boleh dibahagikan dengan bilangan baris. Sama ada ia adalah fail teks atau fail binari, ia boleh dibahagikan mengikut saiz yang ditentukan.
Menggunakan fungsi membaca dan menulis fail Python, anda boleh memisahkan dan menggabungkan fail, menetapkan saiz setiap fail, kemudian membaca bait saiz yang ditentukan dan menulisnya ke dalam fail baharu, dan hujung penerima membaca yang kecil yang dalam urutan Fail, tulis bait baca ke dalam fail mengikut urutan, dan kemudian cantuman boleh diselesaikan.
Pisah
size = 1024 * 1000 * 10# 10MB with open("bigfile", "rb") as reader: part = 1 while True: part_content = reader.read(size) if not part_content: print("split done.") break with open(f"bigfile_part{part}","wb") as writer: writer.write(part_content)
Gabung
total_parts = 5 with open("bigfile","wb") as writer: for i in range(5): with open(f"bigfile_part{i}", "rb") as reader: writer.write(reader.read())
Walaupun ada kemungkinan Tulis sendiri, tetapi orang lain telah menulisnya, mengapa tidak jimatkan sedikit masa dan gunakannya secara langsung? Hanya pasang terus dengan pip:
pip install filesplit
Split
from filesplit.split import Split split = Split("./data.rar", "./output") split.bysize(size = 1024*1000*10) # 每个文件最多 10MB
Selepas pelaksanaan, kita boleh melihat fail split dalam folder output:
< . fail dalam folder, alat ini memerlukan mesti ada fail manifes dalam folder Formatnya adalah seperti berikut: Kod untuk menggabungkan fail hanya perlu menentukan direktori yang hendak digabungkan dan. direktori sasaran. Selepas menggabungkan Nama fail, kodnya adalah seperti berikut:split.bylinecount(linecount = 10000) # 每个文件最多 10000 行
filename,filesize,header data_1.rar,10000000,False data_2.rar,10000000,False data_3.rar,10000000,False data_4.rar,10000000,False data_5.rar,1304145,False
Atas ialah kandungan terperinci Tutorial Python: Bagaimana untuk memisahkan dan menggabungkan fail besar menggunakan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!