分割 / 合并大文件的簡單 python 代碼

使用方法

分割: python fs.py -n <分割后的文件個數> <要分割的文件>
合并: python fs.py -m <分割文件1> <分割文件2> ...

示例

PS C:\Users\Administrator\Desktop> python fs.py
使用方法:
分割: python fs.py -n <分割后的文件個數> <要分割的文件>
合并: python fs.py -m <分割文件1> <分割文件2> ...PS C:\Users\Administrator\Desktop> python fs.py -n 3 .\python-3.13.2-amd64.exe
文件分割完成,共生成 3 個分割文件。PS C:\Users\Administrator\Desktop> python fs.py -m python-3.13.2-amd64.exe.01 python-3.13.2-amd64.exe.02 python-3.13.2-amd64.exe.03
文件合并完成。

源代碼

import os
import sysdef split_file(file_path, num_parts):try:file_size = os.path.getsize(file_path)chunk_size = file_size // num_partsremainder = file_size % num_partswith open(file_path, 'rb') as file:for i in range(num_parts):part_file_name = f"{file_path}.{str(i + 1).zfill(2)}"with open(part_file_name, 'wb') as part_file:if i < num_parts - 1:part_data = file.read(chunk_size)else:part_data = file.read(chunk_size + remainder)part_file.write(part_data)print(f"文件分割完成,共生成 {num_parts} 個分割文件。")except Exception as e:print(f"文件分割出錯: {e}")def merge_files(part_files, output_file):try:with open(output_file, 'wb') as output:for part_file in sorted(part_files):if os.path.exists(part_file):with open(part_file, 'rb') as part:output.write(part.read())# 刪除分割文件os.remove(part_file)print("文件合并完成。")except Exception as e:print(f"文件合并出錯: {e}")if __name__ == "__main__":if len(sys.argv) < 3:print("使用方法:")print("分割: python fs.py -n <分割后的文件個數> <要分割的文件>")print("合并: python fs.py -m <分割文件1> <分割文件2> ...")sys.exit(1)if sys.argv[1] == '-n':if len(sys.argv) != 4:print("分割命令參數錯誤,正確格式: python fs.py -n <分割后的文件個數> <要分割的文件>")sys.exit(1)try:num_parts = int(sys.argv[2])file_to_split = sys.argv[3]split_file(file_to_split, num_parts)except ValueError:print("分割后的文件個數必須是整數。")elif sys.argv[1] == '-m':part_files = sys.argv[2:]if not part_files:print("合并命令缺少分割文件參數。")sys.exit(1)output_file = '.'.join(part_files[0].split('.')[:-1])merge_files(part_files, output_file)else:print("未知參數,請使用 -n 進行分割,-m 進行合并。")

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/899224.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/899224.shtml
英文地址,請注明出處:http://en.pswp.cn/news/899224.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

IDEA 快捷鍵ctrl+shift+f 無法全局搜索內容的問題及解決辦法

本篇文章主要講解IDEA、phpStrom、webStrom、pyCharm等jetbrains系列編輯器無法進行全局搜索內容問題的主要原因及解決辦法。 日期&#xff1a;2025年3月22日 作者&#xff1a;任聰聰 現象描述&#xff1a; 1.按下ctrlshiftf 輸入法轉為了繁體。 2.快捷鍵ctrlshiftr 可以全局檢…

樹狀數組【數據結構】

樹狀數組 簡介 1.應用 1.單點修改區間查詢 2.區間修改單點查詢(差分) 3.區間修改區間查詢(差分公式) 總而言之,就是動態維護前綴和。 2.樹狀結構圖 3.lowbit函數 我們知道&#xff0c;任何一個正整數都可以被表示成一個二進制數。如&#xff1a; ( 2 ) 10 ( 10 ) 2 (2)_{10…

pytorch+maskRcnn框架訓練自己的模型以及模型導出ONXX格式供C++部署推理

背景 maskrcnn用作實例分割時&#xff0c;可以較為精準的定位目標物體&#xff0c;相較于yolo只能定位物體的矩形框而言&#xff0c;優勢更大。雖然yolo的計算速度更快。 直接開始從0到1使用maskrCNN訓練自己的模型并并導出給C部署&#xff08;親測可用&#xff09; 數據標注…

PCL配置

1、下載 打開GitHub網站&#xff0c;搜索pcl&#xff0c;選擇第一個結果打開&#xff0c;按照下圖步驟操作 下載PCL預編譯安裝程序PCL-1.13.1-AllInOne-msvc2022-win64.exe 和要安裝的PCL組件&#xff08;例如pcl-1.13.1-pdb-msvc2022-win64.zip&#xff09; 2、安裝 雙擊 P…

大模型tokenizer重構流程

大模型tokenizer層再訓練&#xff08;選取Qwen7B試驗&#xff0c;重構token層&#xff09; 最近公司可能想訓練一個蛋白質大模型&#xff0c;需要了解一下大模型tokenizer重構&#xff0c;之后可能要訓練&#xff0c;這里做了一定的總結。 文章目錄 1. 首先查看Qwen2.5 7B基本…

Android設計模式之單例模式

一、定義&#xff1a;確保一個類只有一個實例&#xff0c;并且自動實例化&#xff0c;并向整個系統提供這個實例。 二、使用場景&#xff1a;避免重復創建對象&#xff0c;過多消耗系統資源。 三、使用方式 3.1餓漢式&#xff1a;類加載時立即初始化&#xff0c;線程安全&…

docker ssh遠程連接

目錄 操作命令&#xff1a; 確保 SSH 配置允許 root 登錄&#xff1a; docker提交&#xff1a; 操作命令&#xff1a; # 進入容器 docker exec -ti lbg04 /bin/bash# 更新包管理并安裝 SSH 服務&#xff08;Ubuntu/Debian 示例&#xff09; apt-get update apt-get install…

關于matlab和python誰快的問題

關于matlab和python誰快的問題&#xff0c;python比matlab在乘法上快10倍&#xff0c;指數計算快4倍&#xff0c;加減運算持平&#xff0c;略慢于matlab。或許matlab只適合求解特征值。 import torch import timen 50000 # 矩陣規模 M torch.rand(n, 31)start_time time.t…

準確--配置服務器文件數

某些系統可能在 /etc/security/limits.d/ 目錄下有額外配置覆蓋全局設置。檢查是否存在沖突文件&#xff1a; ls /etc/security/limits.d/如果有文件&#xff08;如 90-nproc.conf 或 90-nofile.conf&#xff09;&#xff0c;需編輯或刪除這些文件中的沖突配置。 確保系統啟用…

VectorBT:使用PyTorch+LSTM訓練和回測股票模型 進階一

VectorBT&#xff1a;使用PyTorchLSTM訓練和回測股票模型 進階一 本文介紹了如何使用PyTorch和LSTM模型進行股票數據的訓練和回測。涵蓋了數據預處理、特征選擇、LSTM模型構建、模型訓練與驗證、動態閾值策略生成交易信號以及使用VectorBT進行回測和績效分析。 文中內容僅限技術…

mysql中的聚簇索引,什么是聚簇索引和非聚簇索引

文章目錄 1. 什么是聚簇索引2. 非聚簇索引3. 聚簇索引的優缺點4. 聚簇索引的使用場景5. 聚簇索引和主鍵索引的異同前言: 在繼續講解專欄內容之前,先學習幾個概念,以便更好了解: 什么是聚簇索引什么是回表這篇文章詳細分析 聚簇索引。回表的理解可以進入這篇文章:什么是回表…

MantisBT在Windows10上安裝部署詳細步驟

MantisBT 是一款基于 Web 的開源缺陷跟蹤系統&#xff0c;以下是在 Windows 10 上安裝部署 MantisBT 的詳細步驟&#xff1a; 1. 安裝必要的環境 MantisBT 是一個基于 PHP 的 Web 應用程序&#xff0c;因此需要安裝 Web 服務器&#xff08;如 Apache&#xff09;、PHP 和數據…

深入理解K8s與Docker的關系:容器化技術的雙雄

友情提示&#xff1a;本文內容由銀河易創&#xff08;https://ai.eaigx.com&#xff09;AI創作平臺gpt-4-turbo模型生成&#xff0c;僅供參考。 在現代云計算及微服務架構的發展中&#xff0c;Docker與Kubernetes&#xff08;K8s&#xff09;作為兩大核心技術&#xff0c;被廣泛…

藍橋與力扣刷題(藍橋 藍橋騎士)

題目&#xff1a;小明是藍橋王國的騎士&#xff0c;他喜歡不斷突破自我。 這天藍橋國王給他安排了 N 個對手&#xff0c;他們的戰力值分別為 a1,a2,...,an&#xff0c;且按順序阻擋在小明的前方。對于這些對手小明可以選擇挑戰&#xff0c;也可以選擇避戰。 身為高傲的騎士&a…

如何查看window電腦的GPU信息

GPU&#xff08;圖形處理器&#xff0c;Graphics Processing Unit&#xff09;和顯卡是兩個密切相關但不同的概念 概念 1. ?基本概念? ?GPU?&#xff1a;是專門用于處理圖像和視頻信息的微處理器&#xff0c;擁有強大的并行計算能力&#xff0c;主要負責圖形渲染、數值分…

26考研——查找_樹形查找_二叉排序樹(BST)(7)

408答疑 文章目錄 三、樹形查找二叉排序樹&#xff08;BST&#xff09;二叉排序樹中結點值之間的關系二叉樹形查找二叉排序樹的查找過程示例 向二叉排序樹中插入結點插入過程示例 構造二叉排序樹的過程構造示例 二叉排序樹中刪除結點的操作情況一&#xff1a;被刪除結點是葉結點…

【數據庫事務、消息隊列事務、Redis 事務、Spring 事務 詳細分析】

數據庫事務、消息隊列事務、Redis 事務、Spring 事務** 的詳細分析 在分布式系統和應用開發中&#xff0c;事務管理是確保數據一致性和可靠性的關鍵機制。以下是針對 數據庫事務、消息隊列事務、Redis 事務、Spring 事務 的詳細分析&#xff0c;包括原理、特點、適用場景和對比…

kubectl 命令參數詳解與示例

kubectl 命令參數詳解與示例 kubectl 是 Kubernetes 的命令行工具&#xff0c;用于與 Kubernetes 集群交互。下面我將詳細介紹 kubectl 的主要命令參數&#xff0c;并提供相應的使用示例。 一、基礎命令 1. kubectl get - 獲取資源信息 常用參數&#xff1a; -n, --namesp…

#vue中解決異步請求的競態

// composables/useFetchWithoutRace.js import { ref } from vue; import axios from axios;// 定義一個可復用的 Composition 函數&#xff0c;處理帶有競態控制的異步請求 export function useFetchWithoutRace() {// 定義響應式變量 latestRequestId&#xff0c;用于追蹤最…

如何在 Postman 中導入和導出 cURL 命令?

cURL 是一款廣受歡迎的命令行工具&#xff0c;專門用于執行 HTTP 請求。它在 Web 應用或 API 測試中極為實用&#xff0c;讓用戶得以借助在 API 開發者社區廣為流行的成熟語法&#xff0c;直接通過命令行與 API 進行交互。若你需要在多個環境下運行眾多 cURL 命令&#xff0c;可…