【发布时间】:2012-04-11 14:08:07
【问题描述】:
所以我觉得我在 Google/StackOverflow 上四处寻找代码时可能使用了错误的词。
我正在构建一个脚本,该脚本(除其他外)将执行大量移动文件。
我目前有一条小线将文件名与扩展名分开,如果文件已存在于目录中,则添加文件名+(重复)+扩展名。
但是,我觉得必须有一个简单的小单线,基本上可以做到(重复)、(重复 1)、(重复 2)、(重复 3)等(基本上只是改变第二个数字如果文件与当前文件存在,则到下一个数字)。
有什么简单的解决方案我太笨了,无法弄清楚自己?
抱歉,我没有想到我当前的代码可能会帮助人们回答我的问题!
def destination(self, f): return os.path.abspath('.')+'/'+self.filename(f)+'/'+self.filename(f)+' (Duplicate)'+self.extension(f) if and os.path.isfile(os.path.abspath('.')+'/'+self.filename(f)+'/'+f) else os.path.abspath('.')+'/'+self.filename(f)+'/'+f
我使用了一种稍微改变的方法来获取文件名和扩展名(基本上只是为了解决一些 rar 部分和一些文件夹问题)。但是 'self.filename(f) 和 self.extension(f) 基本上只是 os.splittext(f)[0] 和 os.splittext(f)[1]。
【问题讨论】:
-
您已有的不够简单的解决方案是什么?
-
对不起,如果我不清楚,问题不是我的解决方案不够简单,只是我的解决方案只能处理一个重复,并且我唯一的方法是可以考虑让它做两个基本上只是添加另一个相同但带有“重复1”的代码块,并检查常规和“重复”——这将是完全荒谬的,也很长很长很快,基本上最终会受到我决定添加的数量的限制。