python实现大文件分割与合并
小U盘传大电影时可以免去用winrar分割文件时的压缩和解压缩过程。
file.py import sys
from os.path import exists
fileCount = 0 def splitFile(fileName, partSize=1):
# 1024 * 1024 = 1048576
length = partSize * 1048576
f1 = open(fileName, "rb")
while True:
content = f1.read(length)
if content == "":
break
newFile = distFile(fileName)
f2 = open(newFile, "wb")
f2.write(content)
f2.close()
f1.close()
print ’split file complete!’ def distFile(sourceFile):
global fileCount
fileCount = fileCount + 1
extPos = sourceFile.rfind(‘.’)
if extPos > 0:
return sourceFile + ‘.part’ + str(fileCount)
else: # extPos == -1
print ‘File type? Can not split!’
sys.exit(1) def combine(filename):
count = 0
extPos = filename.find(‘.part’)
if extPos > 0:
file = filename[:extPos]
f1 = open(file, "wb")
while True:
count = count + 1
partFile = file + ‘.part’ + str(count)
if not exists(partFile):
break
else:
f2 = open(partFile, "rb")
content = f2.read()
f2.close()
f1.write(content)
f1.close()
print ‘combine file complete!’ else:
print ‘File type? Can not combine!’ def usage():
print ”’usage is "file.py s[c] filename" or "file.py s[c] filename size(M) \n ’s’ — ’split’, ‘c’ — ‘combine" ”’ if __name__ == "__main__":
if len(sys.argv) !=3 and len(sys.argv) !=4:
usage()
sys.exit(1)
if sys.argv[1] == ’s’:
if len(sys.argv) == 3:
splitFile(sys.argv[2])
elif len(sys.argv) == 4 and int(sys.argv[3]) > 0:
splitFile(sys.argv[2], int(sys.argv[3]))
else:
usage()
sys.exit(1) elif sys.argv[1] ==’c':
if len(sys.argv) == 3:
combine(sys.argv[2])
else:
usage()
else:
usage()
python实现大文件分割与合并的更多相关文章
- python学习——大文件分割与合并
在平常的生活中,我们会遇到下面这样的情况: 你下载了一个比较大型的游戏(假设有10G),现在想跟你的同学一起玩,你需要把这个游戏拷贝给他. 然后现在有一个问题是文件太大(我们不考虑你有移动硬盘什么的情 ...
- 用Python实现大文件分割
python代码如下: import sys,os kilobytes = 1024 megabytes = kilobytes*1000 chunksize = int(200*megabytes) ...
- Php处理大文件-分割和合并
分割文件 /* * 分割文件 * 默认大小 2M=10485760/5 */ function file_split($file,$block_size=10485760/5) { $block_in ...
- 大文件分割、命令脚本 - Python
日志文件分割.命名 工作中经常会收到测试同学.客户同学提供的日志文件,其中不乏几百M一G的也都有,毕竟压测一晚上产生的日志量还是很可观的,xDxD,因此不可避免的需要对日志进行分割,通常定位问题需要针 ...
- Linux中split大文件分割和cat合并文件
当需要将较大的数据上传到服务器,或从服务器下载较大的日志文件时,往往会因为网络或其它原因而导致传输中断而不得不重新传输.这种情况下,可以先将大文件分割成小文件后分批传输,传完后再合并文件. 1.分割 ...
- java:快速文件分割及合并
文件分割与合并是一个常见需求,比如:上传大文件时,可以先分割成小块,传到服务器后,再进行合并.很多高大上的分布式文件系统(比如:google的GFS.taobao的TFS)里,也是按block为单位, ...
- (转)java:快速文件分割及合并
文件分割与合并是一个常见需求,比如:上传大文件时,可以先分割成小块,传到服务器后,再进行合并.很多高大上的分布式文件系统(比如:google的GFS.taobao的TFS)里,也是按block为单位, ...
- JAVA IO分析三:IO总结&文件分割与合并实例
时间飞逝,马上就要到2018年了,今天我们将要学习的是IO流学习的最后一节,即总结回顾前面所学,并学习一个案例用于前面所学的实际操作,下面我们就开始本节的学习: 一.原理与概念 一.概念流:流动 .流 ...
- c语言文件分割与合并
一.综述 c语言操作文件通过文件指针FILE*,每个要操作的文件必须打开然后才能读写. 注意事项: @1分割与合并文件最好使用二进制模式即"rb"或"wb",这 ...
随机推荐
- for 循环里的i++
写代码的时间也不短了,今天看快速排序的算法的时候才去更深层次得理解... for (语句 1; 语句 2; 语句 3) { 被执行的代码块 } 语句 1 (代码块)开始前执行 语句 2 定义运 ...
- [01]关于TDD、BDD和DDD的一些看法
在实际的项目中,我们可能随时面对各种不同的需求,它的各个方面的要素决定了我们所采用的开发模式. 比如,它的复杂度如何?所有的需求是否足够清晰?开发人员对相关的业务是否足够了解?项目的工期是否合理?种种 ...
- webapp的favicon应该怎样组织代码
处理过那么多index 页面了那么关于特别针对于此页的favicon是时候详细的总结一下了 它是网站的头像,它出现在浏览器的收藏夹中(标题的旁边) ,浏览器标签页的左上角,微信公众号的logo,保存网 ...
- 28.Implement strStr()---kmp
题目链接:https://leetcode.com/problems/implement-strstr/description/ 题目大意:字符串匹配,从字符串中,找到给定字符串第一次出现的位置下标, ...
- centos 搭建ntp
str=$(printf "%-25s" "*") echo -e "${str// /*}" echo -e "*\t\t\t* ...
- spring3.2事物配置异常
异常如下: org.springframework.beans.factory.support.DefaultListableBeanFactory@1b4c1d7: defining beans [ ...
- maven工程开始
clipse中,maven工程,更新pom.xml文件后,会让你更新工程.快捷键是Alt + F5,也可以右键工程,Maven-->update project...,这样有个问题就是默认的JR ...
- Codeforces Gym100952 B. New Job (2015 HIAST Collegiate Programming Contest)
B. New Job time limit per test 1 second memory limit per test 64 megabytes input standard input ...
- POJ 2337 Catenyms (欧拉图)
本文链接http://i.cnblogs.com/EditPosts.aspx?postid=5402042 题意: 给你N个单词,让你把这些单词排成一个序列,使得每个单词的第一个字母和上一个字单词的 ...
- MySQL读写分离-架构
MySQL读写分离-架构 简介 对于很多大型网站(pv值百万.千万)来说,在所处理的业务中,其中有70%的业务是查询(select)相关的业务操作(新闻网站,插入一条新闻.查询操作),剩下的则是写(i ...