때때로 대용량 파일을 다른 사람에게 보내야 할 때가 있는데 이메일 첨부 파일 크기 제한 등 전송 채널의 한계나 네트워크 상태가 좋지 않아 대용량 파일을 나누어서 보내야 하는 경우가 있습니다. 작은 파일로 여러 번 보내고 받습니다. 그런 다음 이러한 작은 파일을 병합합니다. 오늘은 Python을 사용하여 대용량 파일을 분할하고 병합하는 방법을 공유하겠습니다.
텍스트 파일인 경우 줄 수에 따라 나눌 수 있습니다. 텍스트 파일이든 바이너리 파일이든 지정된 크기에 따라 분할될 수 있습니다.
Python의 파일 읽기 및 쓰기 기능을 사용하면 파일을 분할 및 병합하고 각 파일의 크기를 설정한 다음 지정된 크기의 바이트를 읽고 새 파일에 쓸 수 있습니다. 수신 측에서는 작은 파일을 순서대로 읽습니다. 획득한 바이트를 순서대로 파일에 기록하면 병합이 완료됩니다.
Split
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)
Merge
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())
직접 작성할 수도 있지만 다른 사람이 작성했지만 시간을 절약하여 직접 사용해 보는 것은 어떨까요? pip로 직접 설치하세요:
pip install filesplit
Split
from filesplit.split import Split split = Split("./data.rar", "./output") split.bysize(size = 1024*1000*10) # 每个文件最多 10MB
실행 후 출력 폴더에서 분할된 파일을 볼 수 있습니다:
파일 라인 수에 따라 분할할 수도 있습니다:
split.bylinecount(linecount = 10000) # 每个文件最多 10000 行
Merge
Merge는 폴더에 작은 파일을 병합해야 합니다. 이 도구를 사용하려면 폴더에 매니페스트 파일이 있어야 합니다. 해당 형식은 다음과 같습니다.
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
파일을 병합하는 코드는 디렉터리만 지정하면 됩니다. 병합될 대상 디렉터리, 병합된 파일 이름, 코드는 다음과 같습니다.
from filesplit.merge import Merge merge = Merge(inputdir = "./output", outputdir="./merge", outputfilename = "merged.rar") merge.merge()
실행 후 병합 디렉터리에서 병합된 파일을 볼 수 있습니다:
위 내용은 Python 튜토리얼: Python을 사용하여 대용량 파일을 분할하고 병합하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!