繁体   English   中英

Python:将文件夹中的文件写入zipfile并压缩

[英]Python:writing files in a folder to zipfile and compressing it

我正在尝试使用python压缩和压缩文件夹中的所有文件。 最终目标是使这种情况发生在Windows Task Scheduler中。

import os
import zipfile

src = ("C:\Users\Blah\Desktop\Test")
os.chdir=(src)
path = (r"C:\Users\Blah\Desktop\Test")
dirs = os.listdir(path)
zf = zipfile.ZipFile("myzipfile.zip", "w", zipfile.ZIP_DEFLATED,allowZip64=True)
for file in dirs:
      zf.write(file)

现在,当我运行此脚本时,出现错误:

WindowsError:[错误2]系统找不到指定的文件:'test1.bak'

我知道它在那里,因为它找到了找不到的文件名。

我想知道为什么它没有压缩,为什么会发生此错误。

.bak文件很大,因此它们可以在4GB以上运行,这就是为什么我允许使用64位。

编辑:成功感谢大家回答我的问题,这里是我的最终代码有效,希望这对我将来的Googlers有帮助:

import os
import zipfile
path = (r"C:\Users\vikram.medhekar\Desktop\Launch")
os.chdir(path)
dirs = os.listdir(path)
zf = zipfile.ZipFile("myzipfile.zip", "w", zipfile.ZIP_DEFLATED,allowZip64=True)
for file in dirs:
  zf.write(os.path.join(file))
zf.close()

os.listdir(path)返回相对于路径的名称-您需要使用zf.write(os.path.join(path, file))告诉它文件的完整位置。

正如我在评论中说过的两次:Python不在所在文件夹中寻找文件,而是在当前工作目录中寻找文件。 代替

zf.write(file)

你需要

zf.write(path + os.pathsep + file)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM