Python 中的几种copy用法
2010-11-11 16:06
417 查看
不知道在什么时候看到个好帖,觉得好就移过来了,学习学习。。。
1.os.system
Pythoncode
Pythoncode
3.win32file.CopyFile
Pythoncode
Pythoncode
1.os.system
Pythoncode
importos importtempfile filename1=tempfile.mktemp(".txt")#产生临时文件或目录,tempfile.mktemp(suffix='',prefix='tmp',dir=None) 产生的文件名或目录,默认就是函数里的参数。
open(filename1,"w").close() filename2=filename1+".copy" printfilename1,"=>",filename2 #拷文件 os.system("copy%s%s"%(filename1,filename2)) ifos.path.isfile(filename2):print"Success" dirname1=tempfile.mktemp(".dir") os.mkdir(dirname1) dirname2=dirname1+".copy" printdirname1,"=>",dirname2 #拷目录 os.system("xcopy/s%s%s"%(dirname1,dirname2))#DOS下,拷贝目录命令xcopy ifos.path.isdir(dirname2):print"Success"
2.shutil.copy和shutil.copytree
Pythoncode
importos
importshutil
importtempfile
filename1=tempfile.mktemp(".txt")
open(filename1,"w").close()
filename2=filename1+".copy"
printfilename1,"=>",filename2
#拷文件
shutil.copy(filename1,filename2)
ifos.path.isfile(filename2):print"Success"
dirname1=tempfile.mktemp(".dir")
os.mkdir(dirname1)
dirname2=dirname1+".copy"
printdirname1,"=>",dirname2
#拷目录
shutil.copytree(dirname1,dirname2)
ifos.path.isdir(dirname2):print"Success"
3.win32file.CopyFile
Pythoncode
importos
importwin32file
importtempfile
filename1=tempfile.mktemp(".txt")
open(filename1,"w").close()
filename2=filename1+".copy"
printfilename1,"=>",filename2
#拷文件
#文件已存在时,1为不覆盖,0为覆盖
win32file.CopyFile(filename1,filename2,1)
win32file.CopyFile(filename1,filename2,0)
win32file.CopyFile(filename1,filename2,1)
ifos.path.isfile(filename2):print"Success"
dirname1=tempfile.mktemp(".dir")
os.mkdir(dirname1)
dirname2=dirname1+".copy"
printdirname1,"=>",dirname2
#拷目录
win32file.CopyFile(dirname1,dirname2,1)
ifos.path.isdir(dirname2):print"Success"
4.SHFileOperation
Pythoncode
importos
fromwin32com.shellimportshell,shellcon
importtempfile
filename1=tempfile.mktemp(".txt")
open(filename1,"w").close()
filename2=filename1+".copy"
printfilename1,"=>",filename2
#拷文件
#文件已存在时,shellcon.FOF_RENAMEONCOLLISION会指示重命名文件
shell.SHFileOperation(
(0,shellcon.FO_COPY,filename1,filename2,0,None,None)
)
shell.SHFileOperation(
(0,shellcon.FO_COPY,filename1,filename2,shellcon.FOF_RENAMEONCOLLISION,None,None)
)
shell.SHFileOperation(
(0,shellcon.FO_COPY,filename1,filename2,0,None,None)
)
ifos.path.isfile(filename2):print"Success"
dirname1=tempfile.mktemp(".dir")
os.mkdir(dirname1)
dirname2=dirname1+".copy"
printdirname1,"=>",dirname2
#拷目录
shell.SHFileOperation(
(0,shellcon.FO_COPY,dirname1,dirname2,0,None,None)
)
ifos.path.isdir(dirname2):print"Success"
测试结果出来了:
测试环境:系统——Win7RTM,CPU——P43.0,MEM——1.5GDDR400,U盘——Kingston4G
用4种不同的方法从硬盘拷贝MSDN2008SP1(2.37G)到U盘:
osSystem的方法耗时903.218秒
shutil的方法耗时1850.634秒
win32file的方法耗时861.438秒
SHFileOperation的方法耗时794.023秒
另外SHFileOperation是显示对话框的,可以这样用SHFileOperation能操作网络上的文件
如果你想将本地文件复制到192.168.1.99
那么只要在192.168.1.99上共享123目录
然后将pTo设置为http://www.cnblogs.com/lovemo1314/admin/file://192.168.1.99/123
就可以了
但不要设置为http://www.cnblogs.com/lovemo1314/admin/file://192.168.1.99/
Pythoncode[code]shell.SHFileOperation(
(0,shellcon.FO_COPY,filename1,filename2,
shellcon.FOF_RENAMEONCOLLISION|
\shellcon.FOF_NOCONFIRMATION|\
shellcon.FOF_NOERRORUI|\
shellcon.FOF_SILENT,None,None))
FOF_SILENT//不产生正在复制的对话框
FOF_NOCONFIRMMKDIR//如果目的目录不存在,就默认创建
FOF_NOCONFIRMATION//不出现确认文件替换对话框(ConfirmationDialog)(默认替换原来的文i件)
FOF_NOERRORUI//不出现错误对话框
最好不要同时使用FOF_NOERRORUI,FOF_NOCONFIRMMKDIR,因为FOF_NOCONFIRMMKDIR屏蔽了missingdirectoryError
但FOF_NOERROR又屏蔽了missingdirectoryError,那么在同时使用FOF_NOERRORUI,FOF_NOCONFIRMMKDIR
相关文章推荐
- Python 中的几种copy用法
- python中星号变量的几种特殊用法
- Python的标准库sys、copy、os相关用法
- Windows下用Python你会几种copy文件的方法?
- python中print的几种用法
- python_浅copy用法
- python中星号变量的几种特殊用法
- Python:几种函数的用法
- Python正则表达式的几种匹配用法
- 几种python隐藏源码工具的用法
- Python正则表达式的几种匹配用法
- python中print的几种用法
- Windows下用Python你会几种copy文件的方法?
- python中print的几种用法
- python几种装饰器的用法
- Python中几种属性访问的区别与用法详解
- Python正则表达式的几种匹配用法
- Windows下用Python你会几种copy文件的方法以及效率分析
- 【转】Windows下用Python你会几种copy文件的方法?
- Python 中的几种复制文件的用法