【发布时间】:2015-04-17 03:07:05
【问题描述】:
我正在尝试编写一个函数,该函数将路径名和文件名分配给基于文件夹中存在的文件名的变量。然后,如果文件名已经存在,则文件名会自动递增。我已经看到一些关于这个使用 while 循环的帖子,但我无法理解这个并且想将它包装在一个递归函数中。
这是我目前所拥有的。使用 print 语句进行测试时,每个都运行良好。但它不会将新名称返回给主程序。
def checkfile(ii, new_name,old_name):
if not os.path.exists(new_name):
return new_name
if os.path.exists(new_name):
ii+=1
new_name = os.path.join(os.path.split(old_name)[0],str(ii) + 'snap_'+ os.path.split(old_name)[1])
print new_name
old_name = “D:\Bar\foo”
new_name= os.path.join(os.path.split(old_name)[0],”output_” + os.path.split(old_name)[1])
checkfile(0,new_name,old_name)
【问题讨论】:
-
您的目标只是为了确保您拥有唯一的文件名吗?因为有更简单的方法可以做到这一点......
-
@1.618 我不认为目标是唯一的名称,而是如果您尝试保存同一个文件两次,则自动附加一个递增的索引(类似于大多数操作系统的做法,如果您这样做所以通过查找器/浏览器)
-
它不会返回,因为您忘记了
return语句。 ;)
标签: python python-2.7