python 复制一个文件到另外一个路径
在 Python 中,可以通过多种方式将文件复制到另一个路径。常用的方法包括使用标准库中的 `shutil` 模块,该模块提供了高层次的文件操作接口,支持复制、移动、重命名等操作。
### 使用 `shutil.copy()` 复制文件
`shutil.copy(src, dst)` 函数用于将源文件 `src` 复制到目标路径 `dst`。如果目标路径是一个已存在的目录,文件将被复制到该目录中并保留原文件名。若目标路径是一个文件名,则文件将被复制并重命名为该文件名。
示例代码如下:
```python
import shutil
# 源文件路径
source_file = 'path/to/source/file.txt'
# 目标路径(可以是目录或完整的目标文件路径)
destination_path = 'path/to/destination/'
# 复制文件
shutil.copy(source_file, destination_path)
```
该方法会保留源文件的权限信息,但不会保留其他元数据(如修改时间)[^1]。
### 使用 `shutil.copy2()` 保留文件元数据
如果希望在复制文件的同时保留文件的元数据(如访问和修改时间),可以使用 `shutil.copy2()` 函数。其语法与 `shutil.copy()` 类似,但更适合用于需要保留文件属性的场景。
```python
import shutil
source_file = 'path/to/source/file.txt'
destination_path = 'path/to/destination/'
# 使用 copy2 保留元数据
shutil.copy2(source_file, destination_path)
```
### 复制整个目录
若需要复制整个目录及其内容,可以使用 `shutil.copytree()`。此函数会递归复制源目录下的所有子目录和文件到目标目录。目标目录不能事先存在。
```python
import shutil
source_dir = 'path/to/source_directory'
destination_dir = 'path/to/destination_directory'
# 递归复制整个目录
shutil.copytree(source_dir, destination_dir)
```
### 使用 `os` 模块进行低层次复制
除了 `shutil`,也可以使用 `os` 模块结合文件读写操作实现文件复制,但这种方式较为复杂且不推荐,除非有特殊需求。
###
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考