首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >压缩目录并动态命名存档的python3脚本

问压缩目录并动态命名存档的python3脚本
EN

Stack Overflow用户
提问于 2016-08-23 09:33:44
回答 4查看 320关注 0票数 2

我正在尝试编写一个python 3脚本,它将压缩目录/home/pi/results的内容并将其复制到另一个文件夹/home/pi/backups。

我需要能够多次运行这个脚本,每次结果存档都是基于以前的存档命名的。因此,第一次运行将创建backup001.tgz,第二次运行将创建backup002.tgz等。每个备份将是一个完整的备份,包含该目录中的任何内容。

我已经知道了如何将文件夹压缩到.tgz中,只是不知道如何根据以前的备份将一个数字附加到其中。

代码语言:javascript
复制
tar=tarfile.open(backupdir+'backup.tgz', "w:gz")
            tar.add(resultspath, arcname=os.path.basename(resultspath))
            tar.close()
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-08-23 09:40:01

或者用时间戳?然后,你就会知道第一眼就知道你在寻找哪一种特定的后援。

代码语言:javascript
复制
import datetime   

date = datetime.datetime.utcnow().isoformat()
filename = 'backup-{}.tgz'.format(date)
filepath = os.path.join(backupdir, filename)

tar=tarfile.open(filepath, "w:gz")
        tar.add(resultspath, arcname=os.path.basename(resultspath))
        tar.close()
票数 0
EN

Stack Overflow用户

发布于 2016-08-23 09:38:58

代码语言:javascript
复制
import os
latest_file = sorted(os.listdir('/home/pi/backups'))[-1]

这将为您提供最新的文件名。下一个可以从这个名字中找出来。

票数 1
EN

Stack Overflow用户

发布于 2016-08-23 10:09:37

使用格罗布获取已经存在的备份列表

使用max()和自定义键找到最后一个

使用字符串格式创建下一个文件名

代码语言:javascript
复制
import glob
filelist = glob.glob('Backup???.tgz')
last = max(filelist, key = lambda x: x[6:9])
filename = 'Backup{0:03d}.tgz'.format(int(last[6:9])+1)
print filename

(输出Backup003.tgz用于包含Backup001.tgz &Backup002.tgz的目录)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39097509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档