【发布时间】:2018-01-30 14:24:36
【问题描述】:
目的
将一个 zip 存档拆分为较小的 zip 存档,每个新 zip 平均分布 # 个文件。
示例
源 zip(100 个文件)
- src/100-Test.zip
目标拉链(每个 25 个文件):
- 目的地/1.zip
- 目的地/2.zip
- 目的地/3.zip
- 目的地/4.zip
说明
所以我已经能够打开 zip 文件并遍历内容以将它们拆分,但我无法写入文件。因为我没有对 zip 内容做任何事情,所以我认为我不必做任何 StringIO 的事情或任何事情?
代码
zipFileNameSrc = '100-Test.zip'
zipFile = open(zipFileNameSrc)
unzippedFile = zipfile.ZipFile(zipFile)
imgList = [(s, unzippedFile.read(s)) for s in unzippedFile.namelist() if (".jpg" or ".JPG") in s]
#image names: imgList[i][0] and images: imgList[i][1]
#...
#...additional logic to split into sets of 25 images
#...fileTuplesList = imgList[:25]
zipNo = 1
#zipFileDest = destination + "/" + zipSrcNm + "/" + zipNo.__str__() + ".zip"
zipFileName = zipNo.__str__() + ".zip"
zipOut = zipfile.ZipFile(zipFileName, 'w')
for i in xrange(len(fileTuplesList)):
fileNameAndPath = fileTuplesList[i][0]
actualFile = fileTuplesList[i][1]
zipOut.write(fileNameAndPath, actualFile)
zipOut.close()
#move_files(zipFileName, zipFileDest)
错误
我上线zipOut.write(fileNameAndPath, actualFile)
OSError: [Errno 2] 没有这样的文件或目录:'100-Test/17.jpg'
奖金
如何将 zip 文件保存到与我的脚本所在的文件夹不同的文件夹中?
【问题讨论】: