Python:将文件夹中的文件写入zipfile并对其进行压缩

Python:将文件夹中的文件写入zipfile并对其进行压缩,python,zipfile,Python,Zipfile,我正在尝试使用python压缩文件夹中的所有文件。最终的目标是在windows任务调度器中实现这一点 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_DEF

我正在尝试使用python压缩文件夹中的所有文件。最终的目标是在windows任务调度器中实现这一点

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位

编辑:成功感谢大家回答我的问题这是我的最终代码,希望这能帮助我未来的谷歌人:

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()

正如我在评论中两次提到的: Python不是在其所在的文件夹中查找文件,而是在当前工作目录中查找文件。而不是

zf.write(file)
你需要

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

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

好吧,您的错误消息与您相矛盾,因此我想您认为文件在那里,但它不在,或者您认为python正在查找正确的目录,但它不在。顺便说一下:您有一个缩进错误。您的最后一行
zf.write(file)
需要缩进。谢谢,很抱歉缩进错误,代码中没有问题,我会编辑它。我知道我把文件放在那个文件夹里了。所以不是这样。正如我所说,Python没有在你认为它正在查找的文件夹中查找。有一件事需要检查。。。在您的实际示例中,尝试打印出
src
path
,并确保它们是相同的。。。一个是原始字符串,另一个不在上面(你有反斜杠),在很多情况下它们是相同的,但有时它们不会…你是对的,src和path是不一样的。路径是正确的,但我会尝试。是的,这回答了我的问题,谢谢。我将很快编辑我的部分