代码:
def file_bk(filename, verbose=False):
if os.path.exists(filename):
if verbose:
print('File ' + filename + ' exists. Backing it up.')
basename = os.path.basename(filename)
n = 1
bk_file = '#' + basename + '_' + str(n) + '#'
while os.path.exists(filename.replace(basename, bk_file)):
n += 1
bk_file = '#' + basename + '_' + str(n) + '#'
os.rename(filename, filename.replace(basename, bk_file))
这是一个Python函数,名为 file_bk
,它有两个参数:filename
和verbose
。该函数旨在备份文件并重命名原始文件。
该函数的作用是:如果给定的文件 filename
存在,则将其备份并重命名为 # filename_1 #
,如果 filename_1
已经存在,则备份文件重命名为 # filename_2 #
,以此类推。
函数会首先检查 filename
是否存在。如果存在,它会在控制台上打印一条消息,告诉用户文件已存在并将被备份。如果 verbose
参数设置为 True
,则会输出该消息。
然后,函数将从 filename
中提取出文件名,使用 os.path.basename
函数。接下来,它将定义备份文件名为 # filename_1 #
,并使用 while
循环检查是否已经存在相同的文件名。如果存在相同的文件名,则会将备份文件名中的数字递增1并重复检查,直到找到一个不存在的备份文件名为止。
最后,函数使用 os.rename
函数将原始文件重命名为备份文件名。
值得注意的是,这个函数需要 os
模块,因此需要在函数之前导入 os
模块。另外,如果在函数调用时不提供 verbose
参数,则默认为 False
。