Heim > Artikel > Backend-Entwicklung > Python-Tutorial: Wie teile ich große Dateien mit Python auf und füge sie zusammen?
Manchmal müssen wir eine große Datei an andere senden, aber aufgrund der Einschränkungen des Übertragungskanals, z. B. der Begrenzung der Größe von E-Mail-Anhängen oder der nicht sehr guten Netzwerkbedingungen, müssen wir die große Datei aufteilen in kleine Dateien aufteilen, mehrmals senden und empfangen. Am Ende werden diese kleinen Dateien dann zusammengeführt. Heute werde ich zeigen, wie man große Dateien mit Python aufteilt und zusammenführt.
Wenn es sich um eine Textdatei handelt, kann diese durch die Anzahl der Zeilen geteilt werden. Unabhängig davon, ob es sich um eine Textdatei oder eine Binärdatei handelt, kann sie entsprechend der angegebenen Größe aufgeteilt werden.
Mit der Dateilese- und -schreibfunktion von Python können Sie Dateien aufteilen und zusammenführen, die Größe jeder Datei festlegen und dann die Bytes der angegebenen Größe lesen und sie in eine neue Datei schreiben. Das empfangende Ende liest die kleinen Dateien nacheinander und schreibt die erhaltenen Bytes der Reihe nach in eine Datei, und die Zusammenführung kann abgeschlossen werden.
Teilen
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)
Zusammenführen
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())
Obwohl Sie es selbst schreiben können, aber andere haben es geschrieben, warum nicht etwas Zeit sparen und es direkt verwenden? Installieren Sie es einfach mit pip:
pip install filesplit
Split
from filesplit.split import Split split = Split("./data.rar", "./output") split.bysize(size = 1024*1000*10) # 每个文件最多 10MB
Nach der Ausführung können wir die geteilten Dateien im Ausgabeordner sehen:
Sie können auch nach der Anzahl der Dateizeilen aufteilen:
split.bylinecount(linecount = 10000) # 每个文件最多 10000 行
Merge
Merge muss kleine Dateien im Ordner zusammenführen. Dieses Tool erfordert, dass sich eine Manifestdatei im Ordner befindet. Ihr Format ist wie folgt:
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
Der Code zum Zusammenführen der Dateien muss nur das Verzeichnis angeben zusammengeführt werden und das Zielverzeichnis, der Name der zusammengeführten Datei, der Code lautet wie folgt:
from filesplit.merge import Merge merge = Merge(inputdir = "./output", outputdir="./merge", outputfilename = "merged.rar") merge.merge()
Nach der Ausführung können Sie die zusammengeführte Datei im Zusammenführungsverzeichnis sehen:
Das obige ist der detaillierte Inhalt vonPython-Tutorial: Wie teile ich große Dateien mit Python auf und füge sie zusammen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!