我正在尝试编写一个备份脚本,对于其中的一部分,我正在考虑在我备份数据的目录中删除具有相同名称的现有文件,因此我没有数千个具有相同名称的文件。我想删除旧文件,然后备份该文件的较新版本。我计划使用crontab每周进行一次或两次备份。到目前为止,我有以下内容:
for files in os.walk(BACKUP_FROM_PATH):
if files.isfile():
if files.name in BACKUP_TO_PATH: # checks if a file with the same name is already in the backup dir
os.remove(files)
removed.append(files)
elif files.isdir():
for files2 in os.walk(files):
if files2.isfile():
if files2.name in BACKUP_FROM_PATH:
os.remove(files2)
removed.append(files2)
return removed
我也有以下选择:
for files, dirs, root in os.walk(BACKUP_FROM_PATH):
for currentFile in files:
if currentFile in BACKUP_FROM_PATH):
os.remove(os.path.join(root, currentFile))
removed.append(currentFile)
return removed
我很好奇只是在执行os.remove和执行os.remove(os.path.join(root,currentFile))之间的区别。我见过人们都提到了这两种方式,并想知道一个人是首选还是他们的行为方式不同。