小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实现大文件分割与合并的更多相关文章

  1. python学习——大文件分割与合并

    在平常的生活中,我们会遇到下面这样的情况: 你下载了一个比较大型的游戏(假设有10G),现在想跟你的同学一起玩,你需要把这个游戏拷贝给他. 然后现在有一个问题是文件太大(我们不考虑你有移动硬盘什么的情 ...

  2. 用Python实现大文件分割

    python代码如下: import sys,os kilobytes = 1024 megabytes = kilobytes*1000 chunksize = int(200*megabytes) ...

  3. Php处理大文件-分割和合并

    分割文件 /* * 分割文件 * 默认大小 2M=10485760/5 */ function file_split($file,$block_size=10485760/5) { $block_in ...

  4. 大文件分割、命令脚本 - Python

    日志文件分割.命名 工作中经常会收到测试同学.客户同学提供的日志文件,其中不乏几百M一G的也都有,毕竟压测一晚上产生的日志量还是很可观的,xDxD,因此不可避免的需要对日志进行分割,通常定位问题需要针 ...

  5. Linux中split大文件分割和cat合并文件

    当需要将较大的数据上传到服务器,或从服务器下载较大的日志文件时,往往会因为网络或其它原因而导致传输中断而不得不重新传输.这种情况下,可以先将大文件分割成小文件后分批传输,传完后再合并文件. 1.分割 ...

  6. java:快速文件分割及合并

    文件分割与合并是一个常见需求,比如:上传大文件时,可以先分割成小块,传到服务器后,再进行合并.很多高大上的分布式文件系统(比如:google的GFS.taobao的TFS)里,也是按block为单位, ...

  7. (转)java:快速文件分割及合并

    文件分割与合并是一个常见需求,比如:上传大文件时,可以先分割成小块,传到服务器后,再进行合并.很多高大上的分布式文件系统(比如:google的GFS.taobao的TFS)里,也是按block为单位, ...

  8. JAVA IO分析三:IO总结&文件分割与合并实例

    时间飞逝,马上就要到2018年了,今天我们将要学习的是IO流学习的最后一节,即总结回顾前面所学,并学习一个案例用于前面所学的实际操作,下面我们就开始本节的学习: 一.原理与概念 一.概念流:流动 .流 ...

  9. c语言文件分割与合并

    一.综述 c语言操作文件通过文件指针FILE*,每个要操作的文件必须打开然后才能读写. 注意事项: @1分割与合并文件最好使用二进制模式即"rb"或"wb",这 ...

随机推荐

  1. 转:Android Context的理解

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40481055,本文出自:[张鸿洋的博客] 本文大多数内容翻译自:http://w ...

  2. libaio.so.1: cannot open shared object file

    <pre code_snippet_id="275763" snippet_file_name="blog_20140404_1_5530152" nam ...

  3. SJCL:斯坦福大学JS加密库

    斯坦福大学Javascript加密库简称SJCL,是一个由斯坦福大学计算机安全实验室创立的项目,旨在创建一个安全.快速.短小精悍.易使用.跨浏览器的JavaScript加密库.(斯坦福大学下载地址:h ...

  4. MFC的使用——在共享DLL中使用MFC、在静态库中使用MFC(转)

    原文转自 https://blog.csdn.net/albertsh/article/details/52838419 1.使用标准Windows库 使用WINDOWS SDK API库,不使用MF ...

  5. eclipse keys

    Navigate Open Declaration F3 Editing Script Source Source Mark Occurrences Alt+Shift+O Editing PHP s ...

  6. Linux的系统级性能剖析工具-perf

    一直在找个靠谱且易用的性能分析工具,perf 貌似是很符合要求的,先给出阿里整理的几篇文档: Linux的系统级性能剖析工具-perf-1.pdf Linux的系统级性能剖析工具-perf-2.pdf ...

  7. NEUQOJ 1999: 三角形or四边形?【搜索联通块/模拟】

    http://newoj.acmclub.cn/problems/1999 1999: 三角形or四边形? 描述 题目描述: JiangYu很无聊,所以他拿钉子在板子上戳出了一个由.#组成的10*10 ...

  8. geant4开发平台的构建方案的讨论a

    首先比较linux和windows下的平台的不同的功能 linux通过命令进行一系列操作,对于不习惯命令的也可以用鼠标,但是就显得过于落后,因为命令的存在自然表明其先进性. linux下的geant4 ...

  9. 10.28 HTML DOM

  10. [BZOJ 1037] 生日聚会Party

    Link: BZOJ 1037 传送门 Solution: 由于对任意一段都有要求,于是我们对于所有前缀考虑其后缀不超过$k $即可: 设$dp[i][j][x][y]$为前$i$个人中有$j$个男孩 ...