如何在Python中复制文件?
当前回答
从Python 3.5开始,您可以对小文件(例如:文本文件、小jpegs)执行以下操作:
from pathlib import Path
source = Path('../path/to/my/file.txt')
destination = Path('../path/where/i/want/to/store/it.txt')
destination.write_bytes(source.read_bytes())
write_bytes将覆盖目标位置的任何内容
其他回答
Python提供了内置函数,可以使用操作系统shell实用程序轻松复制文件。
以下命令用于复制文件:
shutil.copy(src, dst)
以下命令用于复制包含元数据信息的文件:
shutil.copystat(src, dst)
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 |
您可以使用os.system('cp nameoflegatedbyprogram/otherdirectory/')。
或者就像我做的那样,
os.system('cp '+ rawfile + ' rawdata.dat')
其中rawfile是我在程序中生成的名称。
这是一个仅限Linux的解决方案。
目录和文件复制示例,来自Tim Golden的Python Stuff:
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"
有两种在Python中复制文件的最佳方法。
1.我们可以使用梭动模块
代码示例:
import shutil
shutil.copyfile('/path/to/file', '/path/to/new/file')
除了copyfile,还有其他可用的方法,如copy、copy2等,但copyfile在性能方面是最好的,
2.我们可以使用OS模块
代码示例:
import os
os.system('cp /path/to/file /path/to/new/file')
另一种方法是使用子流程,但它不是优选的,因为它是调用方法之一,不安全。
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if
- 如何在Python中获得所有直接子目录