为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用python中的datetime模块动态更新日期?

如何使用python中的datetime模块动态更新日期?

米脂 2023-03-22 16:53:11
我是 python 的初学者,我正在尝试创建一个自动备份我的文件的程序。我正在使用 shutil 制作档案和 apscheduller 来安排备份。我想按日期命名我的备份文件,所以我使用 datetime 来获取当前日期和时间。我在 StartUp 文件夹中有脚本,以便它在启动时运行。这是我的代码:now = datetime.now()date = now.strftime("%Y-%m-%d_%H-%M-%S")backup_dir = r'path/to/backups/folder/' + date + 'docs_backup'root_dir = r'C:/Users/user/'base_dir = r'documents'#This is to make the backup when the computer starts.shutil.make_archive(    backup_dir,    'zip',    root_dir,    base_dir)@sched.scheduled_job('interval', hours=1)def zip_method():     #Make the backup archive every one hour     shutil.make_archive(     backup_dir,     'zip',     root_dir,     base_dir)     print(date)     print("I did a backup!")sched.start()这里的问题是日期变量被声明一次,所以每个每小时的备份都会有一个过时的名称。每次创建新存档时,有什么办法可以为日期变量分配一个新值吗?
查看完整描述

2 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

将文件生成名称制作成一个函数,以便您可以随时随地调用它,如下所示。


ROOT_DIR = r'C:/Users/user/'

BASE_DIR = r'documents'

BACKUP_DIR = r'path/to/backups/folder/'

BACKUP_SUFFIX = 'docs_backup'



def make_backup_path():

    now = datetime.now()

    date = now.strftime("%Y-%m-%d_%H-%M-%S")

    backup_path = BACKUP_DIR + date + BACKUP_SUFFIX

    return backup_path



@sched.scheduled_job('interval', hours=1)

def zip_method():

     #Make the backup archive every one hour

     shutil.make_archive(

     make_backup_path(),

     'zip',

     ROOT_DIR,

     BASE_DIR)

     print(date)

     print("I did a backup!")


#This is to make the backup when the computer starts.

shutil.make_archive(

    make_backup_path(),

    'zip',

    ROOT_DIR,

    BASE_DIR)


sched.start()


查看完整回答
反对 回复 2023-03-22
?
青春有我

TA贡献1784条经验 获得超8个赞

考虑查找本地和全球范围。如果将创建日期的代码部分放在函数中,它会在每次调用时创建一个新日期。


#This is to make the backup when the computer starts.

shutil.make_archive(

    backup_dir,

    'zip',

    root_dir,

    base_dir)


@sched.scheduled_job('interval', hours=1)

def zip_method():

    # Establish the key variables

    now = datetime.now()

    date = now.strftime("%Y-%m-%d_%H-%M-%S")

    backup_dir = r'path/to/backups/folder/' + date + 'docs_backup'

    root_dir = r'C:/Users/user/'

    base_dir = r'documents'



     #Make the backup archive every one hour

     shutil.make_archive(

     backup_dir,

     'zip',

     root_dir,

     base_dir)

     print(date)

     print("I did a backup!")


sched.start()


查看完整回答
反对 回复 2023-03-22
  • 2 回答
  • 0 关注
  • 253 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号