该程序需要每 5 分钟备份一次游戏存档。我取日期和时间,将其写入 x变量,然后写入名称。我创建了一个模板文件夹并将 3 个保存文件复制到其中,然后将文件夹重命名为name并休息 5 分钟
但!
如果你循环执行函数,第一轮顺利,第二轮出现问题 - 模板文件夹仍然创建,但没有重命名。并且已经在第 3 圈发生错误,说savprot文件夹已经存在
如果您重新启动脚本并且不循环它,则不会出现错误。但我不知道该怎么做
import os
import time
from datetime import datetime
import shutil
x = datetime.now()
def backup():
name = '{}.{}.{} _ {}.{}.{}'.format(x.day, x.month, x.year, x.hour,
x.minute, x.second)
os.mkdir('C:\\WGsav\\savprot')
shutil.copy2('C:\\ProgramData\\Orbit\\274\\RLD!\\Save001.sav', 'C:\\WGsav\\savprot')
shutil.copy2('C:\\ProgramData\\Orbit\\274\\RLD!\\Save002.sav', 'C:\\WGsav\\savprot')
shutil.copy2('C:\\ProgramData\\Orbit\\274\\RLD!\\saves.ini', 'C:\\WGsav\\savprot')
os.rename('C:\\WGsav\\savprot', 'C:\\WGsav\\{}'.format(name))
time.sleep(300)
backup()
有循环:
import os
import time
from datetime import datetime
import shutil
import subprocess
x = datetime.now()
while 1:
name = '{}.{}.{} _ {}.{}.{}'.format(x.day, x.month, x.year, x.hour,
x.minute, x.second)
os.mkdir('C:\\WGsav\\savprot')
shutil.copy2('C:\\ProgramData\\Orbit\\274\\RLD!\\Save001.sav', 'C:\\WGsav\\savprot')
shutil.copy2('C:\\ProgramData\\Orbit\\274\\RLD!\\Save002.sav', 'C:\\WGsav\\savprot')
shutil.copy2('C:\\ProgramData\\Orbit\\274\\RLD!\\saves.ini', 'C:\\WGsav\\savprot')
os.rename('C:\\WGsav\\savprot', 'C:\\WGsav\\{}'.format(name))
time.sleep(300)
使用子流程模块。
因此,完成后,程序将自行重新启动。