博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python26实例[文件copy和自动rename]
阅读量:4884 次
发布时间:2019-06-11

本文共 1374 字,大约阅读时间需要 4 分钟。

用来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()

 

完!

转载于:https://www.cnblogs.com/itech/archive/2011/03/22/1991737.html

你可能感兴趣的文章
【codevs1069】关押罪犯
查看>>
iOS 设计模式之单例
查看>>
POJ 1664 放苹果
查看>>
Pthon3各平台的安装
查看>>
python编程快速上手之第11章实践项目参考答案(11.11.3)
查看>>
JS 之CLASS类应用
查看>>
一个tga工具
查看>>
64bit CPU 知识 (IA32,IA64,EM64T,AMD64)
查看>>
结构体 枚举
查看>>
srtlen实现以及与sizeof的比较
查看>>
linux+win7双系统重装win7修复grub的办法
查看>>
让应用在横屏模式下启动
查看>>
日常练习 1.0
查看>>
php集成环境
查看>>
Ubuntu下的负载均衡Web集群配置
查看>>
mvc的个别对输入数据的验证
查看>>
autoit学习安装说明及例子
查看>>
jQuery控制form表单元素聚焦
查看>>
wpf+.net 4.5 surface2.0 = 异步多点触控 时间轴 part1
查看>>
[android]不解锁刷机
查看>>