如何遍历python中的目录树,以及那些扩展名为.py或.txt的文件将它们添加到zipfile中。?

2024-09-27 17:56:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图解决这个问题,但我的代码正在压缩整个主目录。enter image description here

这是我的密码

#!/usr/bin/env python3

import os
import zipfile


def main():
    newzipfile=zipfile.ZipFile("usama.zip","a")
    for folders,subfolders,files in os.walk("/home/amasu/"):

        for file in files:
            if file.endswith(".txt") or file.endswith(".py"):
                newzipfile.write(str(folders+"/"+file))




if __name__=="__main__":
    main()

Tags: 代码inimportforifosmainfiles
1条回答
网友
1楼 · 发布于 2024-09-27 17:56:53

当我更换时,它在我的机器上工作:

newzipfile.write(str(folders+"/"+file))

使用:

newzipfile.write(folders + "/" + file, arcname=file)

第二个参数将其重命名,使其路径不再具有目录分隔符。这使得只写入文件,而不是整个路径。在您当前的情况下,如果您查看解压后的主目录中的实际文件,这些文件应该只有.py或.txt

另外,由于您有实际的文件要压缩,因此不确定这是否相关,但您可能希望在代码退出之前关闭newzipfile:

newzipfile.close()

相关问题 更多 >

    热门问题