때때로 대용량 파일을 다른 사람에게 보내야 할 때가 있는데 이메일 첨부 파일 크기 제한 등 전송 채널의 한계나 네트워크 상태가 좋지 않아 대용량 파일을 나누어서 보내야 하는 경우가 있습니다. 작은 파일로 여러 번 보내고 받습니다. 그런 다음 이러한 작은 파일을 병합합니다. 오늘은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Pythonusesahybridmodelofilationandlostretation : 1) ThePyThoninterPretreCeterCompileSsourcodeIntOplatform-IndependentBecode.

Pythonisbothingretedandcompiled.1) 1) it 'scompiledtobytecodeforportabilityacrossplatforms.2) thebytecodeisthentenningreted, withfordiNamictyTeNgreted, WhithItmayBowerShiledlanguges.

forloopsareusedwhendumberofitessiskNowninadvance, whilewhiloopsareusedwhentheationsdepernationsorarrays.2) whiloopsureatableforscenarioScontiLaspecOndCond

pythonisnotpurelynlogreted; itusesahybrideprophorfbyodecodecompilationandruntime -INGRETATION.1) pythoncompilessourcecodeintobytecode, thepythonVirtualMachine (pvm)

ToconcatenatelistsinpythonwithesameElements, 사용 : 1) OperatorTokeEpduplicates, 2) asettoremovedUplicates, or3) listComperensionForControlOverDuplicates, 각 methodHasDifferentPerferformanCeanDorderImpestications.

PythonisancerpretedLanguage, 비판적 요소를 제시하는 PytherfaceLockelimitationsIncriticalApplications.1) 해석 된 언어와 같은 thePeedBackandbackandrapidProtoTyping.2) CompilledlanguagesLikec/C transformt 해석

useforloopswhhenmerfiterationsiskNownInAdvance 및 WhileLoopSweHeniTesslationsDepoyConditionismet whilEroopsSuitsCenarioswhereTheLoopScenarioswhereTheLoopScenarioswhereTheLoopScenarioswhereTherInatismet, 유용한 광고 인 푸트 gorit


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

Dreamweaver Mac版
시각적 웹 개발 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!