蟒蛇。文件操作

时间:2013-03-28 15:56:10

标签: python

def copytree(src, dst, symlinks=False, ignore=None):
    for item in os.listdir(src):
        s = os.path.join(src, item)
        d = os.path.join(dst, item)
        if os.path.isdir(s):
            print "copying"
            shutil.copytree(s, d, symlinks, ignore=None)
        else:
            shutil.copy2(s, d)
def main ():
    #path to input
    src="/home/user/abcd"
    #here path to output
    dst="/home/user/dirtest"
    copytree(src,dst)

if __name__ == '__main__':
    main()

如果文件已存在,如何将文件复制到目标文件夹中?应将较新的文件重命名为filename.x.ext。

例如 - 如果我尝试复制newfile.jpg并且它已经存在于文件夹中,则应将其复制为newfile.1.jpg。如果newfile.1.jpg也已存在,则新文件应命名为newfile.2.jpg,依此类推

1 个答案:

答案 0 :(得分:2)

def getUniqueName(destPath):
   d = destPath[:]
   count = 0
   while os.path.exists(d):
      count += 1 
      parts = os.path.splitext(d)
      d = "%s.%s%s"%(parts[0],count,parts[1])
   return d

我认为这样可行

然后将其称为

shutil.copy2(s, getUniqueName(d))
当你shutil.copytree

时,

不会有帮助