压缩文件压缩到默认项目目录文件夹而不是文件目录

时间:2019-05-23 12:50:12

标签: python zip

我的代码是:

    def zip_file(path, zip_file_name ,root):
    ziph = zipfile.ZipFile(zip_file_name, 'w', zipfile.ZIP_DEFLATED)
    ziph.write(path, arcname= os.path.join(root, os.path.splitext(zip_file_name)[0]))
    #os.remove(path)
    ziph.close()

def zip_dir(dir_to_zip):
    for root, dirs, files in os.walk(dir_to_zip):
        for curr_file in files:
            fullFilePath = os.path.join(root, curr_file)
            if not curr_file.endswith('.zip'):
                zip_file(fullFilePath, "{}.zip".format(fullFilePath), root)

if __name__ == '__main__':

    zip_dir('C:\\Users\\My_namne\\Desktop\\TEST')

我希望它将文件压缩到原始文件夹,但是将其压缩到我项目的所有文件的工作目录。如何更改输出存档的目录?现在将其压缩到我的工作目录,并将整个根目录压缩到路径

2 个答案:

答案 0 :(得分:1)

User::auth()的第一个参数应该是要创建的归档的完整路径。在zipfile.ZipFile

中进行更改
zip_dir

这将为目录中的每个文件创建一个存档。存档将仅包含文件本身,而不包含文件的整个路径。

def zip_dir(dir_to_zip):
    for root, dirs, files in os.walk(dir_to_zip):
        for curr_file in files:
            fpath = os.path.join(root, curr_file)
            zip_file(fpath, "{}.zip".format(fpath),root)

答案 1 :(得分:0)

mounted

这有效