Python压缩目录脚本中的所有文件失败

Python压缩目录脚本中的所有文件失败,python,Python,我想用python编写一个非常简单的脚本,将所有文件压缩到一个文件夹中。这就是我到目前为止所拥有的: import os import zipfile zfName = 'simonsZip.zip' foo = zipfile.ZipFile(zfName, 'w') for dirname, dirnames, filenames in os.walk('.'): # print path to all filenames. for filename in filenames

我想用python编写一个非常简单的脚本,将所有文件压缩到一个文件夹中。这就是我到目前为止所拥有的:

import os
import zipfile
zfName = 'simonsZip.zip'
foo = zipfile.ZipFile(zfName, 'w')
for dirname, dirnames, filenames in os.walk('.'):
    # print path to all filenames.
    for filename in filenames:
        print (os.path.join(dirname,filename))
        foo.write(os.path.join(dirname, filename))
    foo.close()
当i
sudo python script.py
时,脚本运行,但永远不会结束,同时生成一个巨大的zip文件


有什么想法吗?

你在做一个递归。因为您创建的zip文件列在文件中。
您正在将zip写入zip中的zip中的zip,以此类推。

如果您正在运行
linux
osx
,这可能会非常方便

from subprocess import call

zfName = 'simonsZip'
fnames = '*' #all files
call(["zip","-R", zfName, fnames])

这只是递归地压缩当前目录中的所有文件(
-R
)。

os.walk('.')将遍历当前路径中的每个子目录。所以这可能比您想要的多得多。“foo.close()”的缩进是否正确?1。
foo.close()
正上方缩进了吗?2.您是否应该从要压缩的文件列表中筛选出zfName?3.当你说永远不会结束。。。您是否不断从打印报表中获取输出?打印工作,我获取输出。至于zfName,是的,你是对的,我应该过滤它。是的,在我想要压缩的文件夹中有压缩文件是个问题。谢谢