自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一文教會(huì)你如何用 Python 分割合并大文件

開發(fā) 前端
使用 Python 的文件讀寫功能就可以實(shí)現(xiàn)文件的分割與合并,設(shè)置每個(gè)文件的大小,然后讀取指定大小的字節(jié)就寫入一個(gè)新文件,接收端依次讀取小文件,把讀取到的字節(jié)按序?qū)懭胍粋€(gè)文件,就可以完成合并。

有時(shí)候,我們需要把一個(gè)大文件發(fā)送給別人,但是限于傳輸通道的限制,比如郵箱附件大小的限制,或者網(wǎng)絡(luò)狀況不太好,需要將大文件分割成小文件,分多次發(fā)送,接收端再對(duì)這些小文件進(jìn)行合并。今天就來分享一下用 Python 分割合并大文件的方法。

思路及實(shí)現(xiàn)

如果是文本文件,可以按行數(shù)分割。無論是文本文件還是二進(jìn)制文件,都可以按指定大小進(jìn)行分割。

使用 Python 的文件讀寫功能就可以實(shí)現(xiàn)文件的分割與合并,設(shè)置每個(gè)文件的大小,然后讀取指定大小的字節(jié)就寫入一個(gè)新文件,接收端依次讀取小文件,把讀取到的字節(jié)按序?qū)懭胍粋€(gè)文件,就可以完成合并。

分割

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)

合并

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())

使用第三方庫

雖然可以自己寫,但是別人寫好了,為什么不節(jié)省點(diǎn)時(shí)間直接用呢?直接 pip 安裝就可以了:

pip install filesplit

分割

from filesplit.split import Split
split = Split("./data.rar", "./output")
split.bysize(size = 1024*1000*10) # 每個(gè)文件最多 10MB

執(zhí)行之后,我們就可以在 output 文件夾里看到分割好的文件:

圖片

你也可以按照文件行數(shù)進(jìn)行分割:

split.bylinecount(linecount = 10000) # 每個(gè)文件最多 10000

合并

合并需要對(duì)文件夾里的小文件進(jìn)行合并,該工具要求文件夾內(nèi)必須有 manifest 文件,其格式如下:

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

合并文件的代碼只需要指定要合并的目錄,目標(biāo)目錄,合并后的文件名,代碼如下:

from filesplit.merge import Merge
merge = Merge(inputdir = "./output", outputdir="./merge", outputfilename = "merged.rar")
merge.merge()

執(zhí)行之后就可以在 merge 目錄內(nèi)看到合并后的文件:

圖片

責(zé)任編輯:武曉燕 來源: Python七號(hào)
相關(guān)推薦

2021-05-12 07:55:02

.Net語言配置

2020-11-30 12:32:40

PyTorch語義分割python

2024-03-25 08:18:31

2023-05-11 08:26:56

2024-11-20 16:12:31

Python圖像處理計(jì)算機(jī)視覺

2024-11-18 17:16:18

Python性能優(yōu)化編程

2024-11-20 16:42:03

Python科學(xué)計(jì)算

2024-12-19 15:00:00

數(shù)據(jù)清洗Python

2021-12-07 06:02:15

Redis Docker運(yùn)維

2021-08-10 05:49:10

網(wǎng)絡(luò)協(xié)議C語言Linux操作

2024-09-26 07:27:27

2023-12-27 07:40:43

HTTP服務(wù)器負(fù)載均衡

2022-02-20 09:56:28

TCPIP網(wǎng)絡(luò)協(xié)議

2022-09-05 07:32:46

mock數(shù)據(jù)Stream

2023-07-31 21:56:54

哨兵系統(tǒng)redis

2017-05-09 07:06:54

python文件讀取

2019-07-23 07:30:16

2023-05-04 08:24:52

ChatGPT產(chǎn)品經(jīng)理工業(yè)革命

2020-09-24 16:05:44

C語言sqlite3函數(shù)

2018-08-16 08:19:30

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)