文件拆分代码:
#-*-encoding:utf-8-*- import os import sys import threading def getFileSize(file): file.seek(0, os.SEEK_END) fileLength = file.tell() file.seek(0, 0) return fileLength def divideFile(): fileFullPath = r"%s" % raw_input("File path: ").strip("\"") divideTotalPartsCount = int(raw_input("How many parts do you like to divide?: ")) if os.path.exists(fileFullPath): file = open(fileFullPath, 'rb') fileSize = getFileSize(file) file.close() # send file content for i in range(divideTotalPartsCount): filePartSender = threading.Thread(target=seperateFilePart, args=(fileFullPath, divideTotalPartsCount, i+1, fileSize)) filePartSender.start() for i in range(divideTotalPartsCount): sem.acquire() os.remove(fileFullPath) else: print "File doesn't exist" def seperateFilePart(fileFullPath, divideTotalPartsCount, threadIndex, fileSize): try: # calculate start position and end position filePartSize = fileSize / divideTotalPartsCount startPosition = filePartSize * (threadIndex - 1) #print "Thread : %d, startPosition: %d" % (threadIndex, startPosition) endPosition = filePartSize * threadIndex - 1 if threadIndex == divideTotalPartsCount: endPosition = fileSize - 1 filePartSize = fileSize - startPosition file = open(fileFullPath, "rb") file.seek(startPosition) filePartName = fileFullPath + ".part" + str(threadIndex) filePart = open(filePartName, "wb") lengthWritten = 0 while lengthWritten < filePartSize: bufLen = 1024 lengthLeft = filePartSize - lengthWritten if lengthLeft < 1024: bufLen = lengthLeft buf = file.read(bufLen) filePart.write(buf) lengthWritten += len(buf) filePart.close() file.close() sem.release() print "Part %d finished, size %d" % (threadIndex, filePartSize) except Exception, e: print e sem = threading.Semaphore(0) while True: divideFile()
文件重组代码:
#-*-encoding:utf-8-*- import os def getFileSize(file): file.seek(0, os.SEEK_END) fileLength = file.tell() file.seek(0, 0) return fileLength def rebuildFile(): fileFullPath = r"%s" % raw_input("File base path: ").strip("\"") divideTotalPartsCount = int(raw_input("How many parts have you divided?: ")) file = open(fileFullPath, "wb") for i in range(divideTotalPartsCount): filePartName = fileFullPath + ".part" + str(i+1) filePart = open(filePartName, "rb") filePartSize = getFileSize(filePart) lengthWritten = 0 while lengthWritten < filePartSize: bufLen = 1024 buf = filePart.read(bufLen) file.write(buf) lengthWritten += len(buf) filePart.close() os.remove(filePartName) file.close() while True: rebuildFile()
拆分文件演示:
源文件:
拆分:
拆分后文件:
重组文件:
重组后文件:
以上这篇python文件拆分与重组实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
我正在尝试用Python以编程方式拆分wav文件。基于stackoverflow的提示以及Python wave模块的文档,我将执行以下操作 我迭代了许多不同的起始值和结束值,并以这种方式从原始文件中提取音频块。奇怪的是,这种技术对某些块非常有效,而对其他块产生垃圾白噪声。此外,没有明显的模式表明起始位置和结束位置会产生白噪声,只是输入文件会持续产生白噪声。 有人以前经历过这种行为吗?或者知道我做
问题内容: 我设法根据逗号分割了CSV文件。我通过将虚拟字符串放置在有’,’的位置,然后根据虚拟字符串进行拆分来完成此操作。 但是,CSV文件包含以下内容: 因此,在有新行的地方,每行的最后一个值和第一个值合并到自己的字符串中。我该如何解决?我试图将我的虚拟字符串放置在此处,但据此将其拆分,但没有成功。 救命?! 问题答案: 我强烈建议您不要重新发明轮子:)。使用一个已经可用的库来处理CSV文件,
拆分项目文件 到目前为止我们自定义了一个build.gradle和settings.gradle文件,随着你添加越来越多的子项目和任务到build.gradle中,代码的维护性将会下降。通过给每个子项目建立一个单独的build.gradle文件可以解决这个问题。 接下来我们在每个子项目的目录下创建一个build.gradle文件,目录如下: 现在你可以把构建逻辑从原先的build脚本中拆分开来放到
本文向大家介绍python实现文件的分割与合并,包括了python实现文件的分割与合并的使用技巧和注意事项,需要的朋友参考一下 使用Python来进行文件的分割与合并是非常简单的。 python代码如下: splitFile--将文件分割成大小为chunksize的块; mergeFile--将众多文件块合并成原来的文件; 程序注释部分是使用类的对象的方法。 以上就是本文的全部内容,希望对大家的学
本文向大家介绍python实现大文件分割与合并,包括了python实现大文件分割与合并的使用技巧和注意事项,需要的朋友参考一下 很多时候我们会面临大文件无法加载到内存,或者要传输大文件的问题。这时候就需要考虑将大文件分割为小文件进行处理了。 下面是一种用python分割与合并分件的实现。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
问题内容: 我在理解如何将Flask应用程序拆分为多个文件时遇到麻烦。 我正在创建一个Web服务,并且想将api拆分为不同的文件(AccountAPI.py,UploadAPI.py等),只是我没有一个巨大的python文件。 我读过你可以使用“蓝图”来做到这一点,但我不确定这条路线对我来说是正确的。 最终,我想运行一个Main python文件,并包含其他文件,以便在运行时将它们视为一个大文件。