如何在 Python 中复制文件?本文主要和大家分享几种常见的在python中复制拷贝文件的方法
Function | Copies metadata | Copies permissions | Uses file object | Destination may be directory |
---|---|---|---|---|
shutil.copy | No | Yes | No | Yes |
shutil.copyfile | No | No | No | No |
shutil.copy2 | Yes | Yes | No | Yes |
shutil.copyfileobj | No | No | Yes | No |
shutil.copyfile
import shutil
shutil.copyfile(src, dst)
Code language: JavaScript (javascript)
shutil.copy
shutil.copy(src, dst)
, dst 可以是目录
shutil.copy('source.txt', 'destination.txt')
Code language: JavaScript (javascript)
shutil.copy2()
可以保留 timestamp 信息
src和dst都需要是整文件名,包括路径。
目标位置必须是可写的;否则将引发IOError异常
如果dst已经存在,它将被替换。
注意无法复制字符或块设备和管道等特殊文件。
import shutil
shutil.copy2('/src/dir/file.ext', '/dst/dir/newname.ext')
shutil.copy2('/src/file.ext', '/dst/dir')
Code language: JavaScript (javascript)
shutil.copyfileobj
shutil.copyfileobj(src_file_object, dest_file_object[, length])
Code language: CSS (css)
file_src = 'source.txt'
f_src = open(file_src, 'rb')
file_dest = 'destination.txt'
f_dest = open(file_dest, 'wb')
shutil.copyfileobj(f_src, f_dest)
Code language: JavaScript (javascript)
使用os模块的方法
os.popen
Linux/Unix 下
os.popen('cp source.txt destination.txt')
Code language: JavaScript (javascript)
Windows
os.popen('copy source.txt destination.txt')
Code language: JavaScript (javascript)
os.system(command)
Linux/Unixos.system('cp source.txt destination.txt')
Windows
os.system('copy source.txt destination.txt')
Code language: JavaScript (javascript)
使用subprocess3)模块复制文件
subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)
Code language: PHP (php)
Linux/Unix
status = subprocess.call('cp source.txt destination.txt', shell=True)
Code language: PHP (php)
Windows
status = subprocess.call('copy source.txt destination.txt', shell=True)
Code language: PHP (php)