目錄
想法及實現
使用第三方函式庫
首頁 後端開發 Python教學 Python 教學:如何使用 Python 分割和合併大檔案?

Python 教學:如何使用 Python 分割和合併大檔案?

Apr 22, 2023 am 11:43 AM
python 工具 分裂

有時候,我們需要把一個大文件發送給別人,但是限於傳輸通道的限制,比如郵箱附件大小的限制,或者網絡狀況不太好,需要將大文件分割成小文件,分多次發送,接收端再對這些小文件進行合併。今天就來分享一下用 Python 分割合併大檔案的方法。

想法及實現

如果是文字文件,可以依行數分割。無論是文字文件還是二進位文件,都可以依指定大小進行分割。

使用Python 的文件讀寫功能就可以實現文件的分割與合併,設定每個文件的大小,然後讀取指定大小的字節就寫入一個新文件,接收端依次讀取小文件,把讀取到的位元組依序寫入一個文件,就可以完成合併。

分割

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())
登入後複製

使用第三方函式庫

雖然可以自己寫,但是別人寫好了,為什麼不省點時間直接用呢?直接pip 安裝就可以了:

pip install filesplit
登入後複製

分割

from filesplit.split import Split
split = Split("./data.rar", "./output")
split.bysize(size = 1024*1000*10) # 每个文件最多 10MB
登入後複製

執行之後,我們就可以在output 資料夾裡看到分割好的檔案:

一文教会你如何用 Python 分割合并大文件

你也可以依照檔案行數分割:

split.bylinecount(linecount = 10000) # 每个文件最多 10000 行
登入後複製

#合併

合併需要對資料夾裡的小文件進行合併,工具要求資料夾內必須有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
登入後複製

合併文件的程式碼只需要指定要合併的目錄,目標目錄,合併後的檔案名,程式碼如下:

from filesplit.merge import Merge
merge = Merge(inputdir = "./output", outputdir="./merge", outputfilename = "merged.rar")
merge.merge()
登入後複製

執行之後就可以在merge 目錄內看到合併後的檔案:

一文教会你如何用 Python 分割合并大文件

以上是Python 教學:如何使用 Python 分割和合併大檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
<🎜>掩蓋:探險33-如何獲得完美的色度催化劑
2 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1677
14
CakePHP 教程
1430
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
什麼是 Sign Protocol (SIGN)?跨鏈驗證網絡入門指南 什麼是 Sign Protocol (SIGN)?跨鏈驗證網絡入門指南 May 14, 2025 pm 10:48 PM

區塊鏈技術持續改變著人們在線上交換價值、驗證信息和建立信任的方式。隨著去中心化應用在各行各業的蓬勃發展,跨多個區塊鏈確認聲明和身份的能力變得越來越重要,也越來越複雜。傳統的、依賴於中心化權威的信任模型往往不足以支撐去中心化的生態系統,因此對區塊鏈原生驗證解決方案的需求也日益增長。 SignProtocol(SIGN)通過提供一個用於跨多個區塊鍊網絡創建、驗證和管理證明的框架來應對這一挑戰。 SignProtocol旨在打造一個全鏈

火必HuobiAPI接口怎麼申請_火必HuobiAPI接口申請流程詳解 火必HuobiAPI接口怎麼申請_火必HuobiAPI接口申請流程詳解 May 15, 2025 pm 03:54 PM

申請火必API接口需六步:1.註冊火必賬戶並選擇“全球站”;2.完成實名認證(L1/L2/L3);3.登錄並進入API管理頁面;4.創建API密鑰,填寫基本信息並選擇權限;5.生成並保存Access Key和Secret Key;6.集成API至應用,注意安全事項並定期更換密鑰。

使用VSCode編寫JavaScript代碼的最佳實踐 使用VSCode編寫JavaScript代碼的最佳實踐 May 15, 2025 pm 09:45 PM

在VSCode中編寫JavaScript代碼的最佳實踐包括:1)安裝Prettier、ESLint和JavaScript(ES6)codesnippets擴展,2)配置launch.json文件進行調試,3)使用現代JavaScript特性和優化循環來提高性能。通過這些設置和技巧,你可以在VSCode中更高效地開發JavaScript代碼。

ZORA幣是什麼? ZORA代幣經濟學以及未來潛力如何? ZORA幣是什麼? ZORA代幣經濟學以及未來潛力如何? May 14, 2025 pm 09:51 PM

Zora最初是一個基於以太坊的NFT平台,允許用戶購買、出售和創建NFT收藏品,無需支付交易費。隨著不斷發展,該專案已經向社交平台轉型,並透過讓任何人都可以輕鬆地將其內容轉化為可交易的貨幣來繼續增強創造力。由於Base迷因幣事件,Zora引起了市場關注。另外,該網絡宣佈於4月23日進行ZORA代幣空投,並在同一日於幣安Alpha平台上線,標誌著Zora發展的重要里程碑。那麼,Zora(ZORA)加密貨

利用VSCode進行代碼的版本回退操作 利用VSCode進行代碼的版本回退操作 May 15, 2025 pm 09:42 PM

在VSCode中可以使用Git進行代碼版本回退。 1.使用gitreset--hardHEAD~1回退到上一個版本。 2.使用gitreset--hard回退到特定提交。 3.使用gitrevert安全回退而不改變歷史記錄。

Vaneck推出了針對機構投資者的第一個RWA令牌化基金 Vaneck推出了針對機構投資者的第一個RWA令牌化基金 May 15, 2025 am 11:51 AM

VBILL代幣基金於5月13日推出,為機構投資者提供了代幣化的美國財政賬單的機會。 Vaneck的新型標記基金將使機構投資者能夠投資美國國庫賬單。 VBILL代幣基金於5月13日啟動,是與Securitize合作的結果,Securitize是支持該基金全部運營的令牌化平台。該基金將在四個主要區塊鏈上進行訂閱-以太坊,索拉納,雪崩和BNB鏈。在其中三個區塊鏈(雪崩,Solana和BNB鏈)上,最低訂閱額為100,000美元。而在以太坊上,最低投資額為100萬美元。該基金是Vaneck努力擴大其在現實世

在VSCode中查看Git歷史記錄和更改 在VSCode中查看Git歷史記錄和更改 May 15, 2025 pm 09:24 PM

在VSCode中查看Git歷史記錄和更改的方法包括:1.打開VSCode,確保項目已初始化Git倉庫。 2.點擊左側邊欄“源代碼管理”圖標。 3.選擇“...(更多選項)”並點擊“Git:ShowGitOutput”。 4.查看提交歷史和文件更改。 5.右鍵文件選擇“Git:ShowFileHistory”查看文件更改歷史。通過這些步驟,你可以在VSCode中高效地查看Git歷史記錄和更改,提升開發效率。

在VSCode中運行Ruby代碼的環境配置 在VSCode中運行Ruby代碼的環境配置 May 15, 2025 pm 09:30 PM

在VSCode中配置Ruby開發環境需要以下步驟:1.安裝Ruby:從官方網站或使用RubyInstaller下載並安裝。 2.安裝插件:在VSCode中安裝CodeRunner和Ruby插件。 3.設置調試環境:安裝DebuggerforRuby插件,並在.vscode文件夾下創建launch.json文件進行配置。這樣,你就可以在VSCode中高效地編寫、運行和調試Ruby代碼。

See all articles