【问题标题】:os.walk certain file types into an existing ZipFile?os.walk 将某些文件类型放入现有的 ZipFile?
【发布时间】:2011-09-13 12:55:24
【问题描述】:

基本上我需要将文件夹中某种类型的所有文件复制到最高级别的ZipFile 中(所以不在文件夹中)。

例如,我有一个文件夹“A Folder”,并且在该文件夹中有大量 .png 文件。我想将所有这些文件复制到现有的ZipFile 中。目前我也只能复制文件夹,所以我最终得到'ZipFile\A Folder\lots of .pngs'而不是'ZipFile\lots of .pngs'

我用来移动文件和文件夹的代码是:

for root, dirs, files in os.walk('A Folder'):
    for f in files:
        fname = os.path.join(root, f)
        myzip.write(fname)

另一个快速的事情,你将如何从ZipFile 中删除一个文件夹?

【问题讨论】:

    标签: python file copy zip


    【解决方案1】:

    根据 python 文档,zipfile.write() 方法支持第二个参数,即目标名称(即存档中的名称),尝试像这样使用它:

    for root, dirs, files in os.walk('A Folder'):
        for f in files:
            fname = os.path.join(root, f)
            new_path = os.path.normpath(fname.replace('A Folder', ''))
            myzip.write(fname, new_path)
    

    【讨论】:

    • 太棒了,非常感谢!我没有意识到你可以找到存档目的地,这正是我在谢谢你之后的样子。唯一的问题是,如果您再次运行它,它不会覆盖文件,它只是添加它的另一个副本,不过我会调查它。再次感谢
    猜你喜欢
    • 1970-01-01
    • 2016-03-20
    • 2019-10-31
    • 1970-01-01
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多