新闻中心
Python 文件按大小切割保存的方法
答案:Python可通过分块读写实现文件切割。先按指定大小(如50MB)以二进制模式读取原文件,逐段写入命名含序号的新文件(如file_part_001),确保磁盘空间充足并保留原始信息以便合并。

处理大文件时,经常需要将一个大文件按指定大小切割成多个小文件,便于传输或存储。Python 提供了简单有效的方式来实现文件按大小切割保存。下面介绍具体方法。
1. 基本思路
读取原始文件,以设定的块大小(如 10MB)逐段读取内容,并写入新的分片文件中。每个分片文件命名可按序号递增,例如 file_part_001.txt、file_part_002.txt 等。
2. 实现代码示例
以下是一个通用函数,用于将任意文件按指定大小(字节)进行切割:
import os
def split_file(file_path, chunk_size_mb):
# 转换为字节
chunk_size = chunk_size_mb * 1024 * 1024
# 获取文件名和目录
dir_name = os.path.dirname(file_path)
base_name = os.path.basename(file_path)
# 打开原文件
with open(file_path, 'rb') as f:
part_num = 1
while True:
data = f.read(chunk_size)
if not data:
break # 文件读取完毕
# 构造分片文件名
part_filename = f"{base_name}.part{part_num:03d}"
part_filepath = os.path.join(dir_name, part_filename)
# 写入分片
with open(part_filepath, 'wb') as part_file:
part_file.write(data)
print(f"已生成分片: {part_filepath}, 大小: {len(data)} 字节")
part_num += 1
print(f"文件切割完成,共生成 {part_num - 1} 个分片。")3. 使用方式
假设你要将当前目录下的 large_data.zip 按每份 50MB 切割:
Whimsical
Whimsical推出的AI思维导图工具
182
查看详情
split_file('large_data.zip', chunk_size_mb=50)执行后会生成如下文件:
- large_data.zip.part001
- large_data.zip.part002
- ...
4. 注意事项
实际使用中需注意以下几点:
- 确保磁盘有足够空间存放所有分片
- 二进制模式('rb'/'wb')适用于所有类型文件,包括文本、压缩包、视频等
- chunk_size_mb 设置过小会导致分片过多,影响管理
- 建议保留原始文件名信息以便后续合并
基本上就这些。这个方法简单可靠,适合大多数场景下的文件分割需求。
以上就是Python 文件按大小切割保存的方法的详细内容,更多请关注其它相关文章!
# 解决问题
# facebook海外营销推广售价多少钱
# 山西seo优化
# 淮安seo营销推广
# 智能选题网站建设方案
# 河间网站建设制作
# 天津东丽网站建设
# 成都seo优化行业
# 莆田网站建设价位
# 大连营销推广哪家好
# 建设银行天津网站
# 几点
# python
# 中文网
# 相关文章
# 适用于
# 多个
# 大文件
# 是一个
# 如何做
# 分片
# 字节
# 文件切割
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
MAC的“快捷指令”怎么同步到iPhone_MAC利用iCloud同步所有设备的自动化指令
在J*aScript中复现SciPy的B样条拟合与求值:关键考量
c++如何使用Catch2编写单元测试_c++简洁易用的BDD风格测试框架
C++如何检测键盘输入_C++ _kbhit与_getch函数非阻塞输入
html5 app怎么运行环境_配html5 app运行环境【教程】
淘宝网网页版登录入口 淘宝官方网页版快捷登录
Golang如何使用buffered channel提高性能_Golang buffered channel优化技巧
html怎么在cmd下运行php文件_cmd运行html中php文件方法【教程】
中兴Axon42Ultra怎样在文件App筛图_iPhone中兴Axon42Ultra文件App筛图【图片筛选】
漫蛙2网页版漫画入口 漫蛙漫画在线官方登录
PostgreSQL海量数据高效导入策略:Python与Django实践指南
单射、满射与双射的关系 一文理清所有逻辑
FullCalendar 自定义按钮样式定制指南
漫蛙2在线漫画入口 漫蛙正版漫画网页版直达
快手官方唯一登录入口 谨防山寨钓鱼网站
微信网页版官方入口直达 微信网页版网页版登录使用方法
mysql通配符支持数字匹配吗_mysql通配符能否用于数字匹配的解析
win11专注助手在哪 Win11免打扰模式设置与自动化规则【指南】
漫蛙2正版漫画站 漫蛙2网页版快速访问入口
LINUX的I/O重定向是什么_深入理解LINUX中 >、>> 与 < 的区别
知音漫客官网漫画下载_知音漫客网页版阅读记录
邮政快递包裹最新位置 邮政快递实时追踪入口
J*aScript中高效管理与清空动态列表:避免循环陷阱
汽水音乐车机版横屏版7.1 汽水音乐车机版横屏版下载入口
PS5 Pro有点优势但不多! 《燕云十六声》PS5平台与PC性能画面对比
Golang如何实现微服务鉴权与权限控制_Golang微服务鉴权与权限管理实践
在Runstone环境中高效处理TasteDive API的JSON数据
深入理解J*aScript中的B样条曲线与节点向量生成
CSS自定义字体样式被系统字体替换怎么办_font-face方式指定font-display控制渲染策略
mysql密码锁定怎么解锁_mysql密码锁定解锁后修改密码步骤
Django表单提交验证失败后保持字段值不刷新
c++20的std::jthread是什么_c++可中断线程与RAII式管理
《噬血代码2》新预告片发布 展示游戏剧情
2025俄罗斯Yandex最新入口 官方网站地址及浏览器下载指南
如何有效阻止外部脚本意外修改内联样式的高度属性
Python类型检查:优化关联可选属性的Mypy推断策略
163邮箱网页版入口导航平台 163邮箱网页版登录入口官网导航
Descript怎样用AI剪辑自动去噪_Descript用AI剪辑自动去噪【自动降噪】
向日葵客户端怎么进行远程CentOS控制_向日葵客户端远程CentOS控制操作教程
Python异步编程实践:使用Binance API构建实时交易数据流
J*aScript类型检查_j*ascript代码规范
荣耀Play7TPro怎样在信息App置顶客服对话_iPhone荣耀Play7TPro信息App置顶客服对话【优先查看】
c++ 命名空间怎么用 c++ namespace使用指南
vivo手机参数配置怎么增强信号_vivo手机参数配置信号增强方法
AO3镜像入口大全 AO3网页版内容访问全集
使用J*aScript检测输入元素是否包含在特定类中
浏览器打开即用 美图秀秀网页版入口
支付宝如何管理隐私设置_支付宝隐私保护的配置技巧
如何在更新Composer依赖后自动运行测试_使用post-update-cmd钩子触发PHPUnit
电脑安装程序提示“错误1722”怎么办_Windows Installer服务问题解决【教程】


2025-11-18
浏览次数:次
返回列表
dir_name = os.path.dirname(file_path)
base_name = os.path.basename(file_path)
# 打开原文件
with open(file_path, 'rb') as f:
part_num = 1
while True:
data = f.read(chunk_size)
if not data:
break # 文件读取完毕
# 构造分片文件名
part_filename = f"{base_name}.part{part_num:03d}"
part_filepath = os.path.join(dir_name, part_filename)
# 写入分片
with open(part_filepath, 'wb') as part_file:
part_file.write(data)
print(f"已生成分片: {part_filepath}, 大小: {len(data)} 字节")
part_num += 1
print(f"文件切割完成,共生成 {part_num - 1} 个分片。")