文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>python26实例[文件copy和自动rename]

python26实例[文件copy和自动rename]

时间:2011-03-22  来源:iTech


用来copy文件和目录,当文件或文件夹已经存在时,自动增加.r1,.r2......来重命名新copy的文件。

 

代码:

import os
import sys
import shutil


def copyWithRename(source, dest, rename = True):

  if os.path.exists(dest) and rename == True:
    dir, name = os.path.split(dest)
    newdest = dest
    if os.path.isfile(dest):
      namewithoutext, ext = os.path.splitext(name)
      i = 1
      while(1):
        newdest = os.path.join(dir, namewithoutext + '.r' + str(i) + ext)
        if os.path.exists(newdest):
          i+=1
          continue
        else: break
    else:
      i = 1
      while(1):
        newdest = os.path.join(dir, name + '.r' + str(i))
        if os.path.exists(newdest):
          i+=1
          continue
        else: break
    dest = newdest
    
  print 'Copied : ' + source + '  >>>  ' + dest

  if os.path.isdir(source):
    shutil.copytree(source,dest)
  else:
    shutil.copyfile(source,dest)
    

def usage():
  thescript = sys.argv[0]
  usage = '\n\
  Function:\n\
    Copy file or folder and rename it with .rx suffix\n\
    when the same file or folder is already existed.\n\
  Usage:\n\
    python %s source dest\n\
  Eexamples:\n\
    python %s "c:\\test\\test.txt" "c:\\test2\\test.txt"\n\
    python %s "c:\\test\\test1" "c:\\test\\test2"\n\
  Notes:\n\
      source and dest must be same type, such as both of them are file or dir.\n\
  ' % (thescript,thescript,thescript)
  print usage

if __name__ == '__main__':
  if len(sys.argv) == 3: 
    copyWithRename(sys.argv[1], sys.argv[2])
  else:
    usage()

 

完!

相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载