我不知道如何使用 shutil.make_archive
将文件夹压缩到 zip 文件中,然后将该 saved_20170721.zip
文件放入名为的文件夹中过去的数据
我有代码:
from shutil import make_archive
from datetime import datetime
folderpath_to_zip_up = 'c:\my_work\todays_data' # I wanna zip up this folder
folderpath_archive = 'c:\past_data' # And put it into here as file
filename = 'saved_{:%Y-%m-%d}'.format(datetime.now())
make_archive(filename, 'zip', folderpath_archive, folderpath_to_zip_up)
我的目标是 'c:\past_data'
看起来像:
past_data---+ saved_20170721.zip
+ saved_20170722.zip
+ saved_20170723.zip
+ saved_20170724.zip
但我无法理解 documentation我不断得到奇怪的结果。
最佳答案
我遇到了同样的问题,发现 Shutil.make_archive 的文档非常密集且违反直觉。
我最终得到了它,并编写了一个函数来帮助我,因为我永远无法第一次就把它做好。
import os, shutil
def make_archive(source, destination):
base = os.path.basename(destination)
name = base.split('.')[0]
format = base.split('.')[1]
archive_from = os.path.dirname(source)
archive_to = os.path.basename(source.strip(os.sep))
shutil.make_archive(name, format, archive_from, archive_to)
shutil.move('%s.%s'%(name,format), destination)
make_archive('/path/to/folder', '/path/to/folder.zip')
希望它有帮助..我这里也有一篇关于它的博客文章
关于Python:如何使用shutil.make_archive?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45245079/