所以我打算每两次备份一次这个文件,一次最多备份30次。一旦有30个备份,该函数将删除所有备份并重新开始(再次创建30个备份,每两秒一次)。你知道吗
因为我要创建同一个文件的30个副本,所以我需要更改名称,以便python不会覆盖该文件(main0.db、main1.db、main2.db、main3.db…等等)。为了做到这一点,我创建了一个变量,该变量被附加到文件名(i)中,并在每次函数运行时增加1。你知道吗
问题是因为我必须(?)对于函数中的变量,每次运行时都会重置变量,因此创建的唯一文件是main0.db。你知道吗
有什么想法吗?你知道吗
嘿,我想每两次备份一次这个文件,最多一次备份30次。一旦有30个备份,该函数将删除所有备份并重新开始(再次创建30个备份,每两秒一次)。你知道吗
因为我要创建同一个文件的30个副本,所以我需要更改名称,以便python不会覆盖该文件(main0.db、main1.db、main2.db、main3.db…等等)。为了做到这一点,我创建了一个变量,该变量被附加到文件名(i)中,并在每次函数运行时增加1。你知道吗
问题是因为我必须(?)对于函数中的变量,每次运行时都会重置变量,因此创建的唯一文件是main0.db。你知道吗
有什么想法吗?你知道吗
import os
import glob
import threading
import shutil
def check():
i = 0
threading.Timer(2, check).start()
listPath = 'C:\Users\Billy\Desktop\New folder'
num_files = len([f for f in os.listdir(listPath)
if os.path.isfile(os.path.join(listPath, f))])
#counts all the files in the directory
if num_files < 30:
copyPath = 'C:\Users\Billy\Desktop\New folder\main%d.db' % i
i + 1
shutil.copy2('C:\main.db', copyPath)
else:
files = glob.glob('C:\Users\Billy\Desktop\New folder\*')
for f in files:
os.remove(f)
i = 0
#if theres less than 30 files, creates a copy of the file, iterates filename by 1
#else deletes all files in that folder, resets file name iterator to 0.
return
check()
谢谢
目前没有回答
相关问题 更多 >
编程相关推荐