Windows下用Python你会几种copy文件的方法?

来源:互联网 发布:线路板用什么软件 编辑:程序博客网 时间:2024/04/30 10:20
1. os.system
Python code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import os
import tempfile
 
filename1 = tempfile.mktemp (".txt")
open (filename1, "w").close ()
filename2 = filename1 + ".copy"
print filename1, "=>", filename2
 
#拷文件
os.system ("copy %s %s" % (filename1, filename2))
 
if os.path.isfile (filename2): print "Success"
 
dirname1 = tempfile.mktemp (".dir")
os.mkdir (dirname1)
dirname2 = dirname1 + ".copy"
print dirname1, "=>", dirname2
 
#拷目录
os.system ("xcopy /s %s %s" % (dirname1, dirname2))
 
if os.path.isdir (dirname2): print "Success"


2. shutil.copy和shutil.copytree
Python code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import os
import shutil
import tempfile
 
filename1 = tempfile.mktemp (".txt")
open (filename1, "w").close ()
filename2 = filename1 + ".copy"
print filename1, "=>", filename2
 
#拷文件
shutil.copy (filename1, filename2)
 
if os.path.isfile (filename2): print "Success"
 
dirname1 = tempfile.mktemp (".dir")
os.mkdir (dirname1)
dirname2 = dirname1 + ".copy"
print dirname1, "=>", dirname2
 
#拷目录
shutil.copytree (dirname1, dirname2)
 
if os.path.isdir (dirname2): print "Success"


3.  win32file.CopyFile
Python code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import os
import win32file
import tempfile
 
filename1 = tempfile.mktemp (".txt")
open (filename1, "w").close ()
filename2 = filename1 + ".copy"
print filename1, "=>", filename2
 
#拷文件
#文件已存在时,1为不覆盖,0为覆盖
win32file.CopyFile (filename1, filename2, 1)
win32file.CopyFile (filename1, filename2, 0)
win32file.CopyFile (filename1, filename2, 1)
 
if os.path.isfile (filename2): print "Success"
 
dirname1 = tempfile.mktemp (".dir")
os.mkdir (dirname1)
dirname2 = dirname1 + ".copy"
print dirname1, "=>", dirname2
 
#拷目录
win32file.CopyFile (dirname1, dirname2, 1)
 
if os.path.isdir (dirname2): print "Success"


4. SHFileOperation
Python code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import os
from win32com.shell import shell, shellcon
import tempfile
 
filename1 = tempfile.mktemp (".txt")
open (filename1, "w").close ()
filename2 = filename1 + ".copy"
print filename1, "=>", filename2
 
#拷文件
#文件已存在时,shellcon.FOF_RENAMEONCOLLISION会指示重命名文件
shell.SHFileOperation (
  (0, shellcon.FO_COPY, filename1, filename2, 0NoneNone)
)
shell.SHFileOperation (
  (0, shellcon.FO_COPY, filename1, filename2, shellcon.FOF_RENAMEONCOLLISION, NoneNone)
)
shell.SHFileOperation (
  (0, shellcon.FO_COPY, filename1, filename2, 0NoneNone)
)
 
if os.path.isfile (filename2): print "Success"
 
dirname1 = tempfile.mktemp (".dir")
os.mkdir (dirname1)
dirname2 = dirname1 + ".copy"
print dirname1, "=>", dirname2
 
#拷目录
shell.SHFileOperation (
  (0, shellcon.FO_COPY, dirname1, dirname2, 0NoneNone)
)
 
if os.path.isdir (dirname2): print "Success"
原创粉丝点击