您的位置:首页 > 编程语言 > Python开发

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

2011-03-22 18:09 537 查看
用来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()

完!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: