在工程中,常会遇到需要对于文件批量操作的情况,比如对文件进行移动、复制以及重命名等操作。本文介绍基于 Python shutil 包实现对文件的移动、复制以及重命名等操作。
shutil 主要针对文件进行拷贝、删除、移动和压缩。之前在[[读取文件夹文件并且移动]]中介绍过使用 shutil 进行深度模型训练过程中的数据集的移动。
1. 基础函数介绍
- 复制函数
shutil.copy()
shutil.copy(src, dst, *, follow_symlinks=True)
这分为两种情况,当 dst
为文件路径时候,将文件 src
复制到 dst
所在文件夹,并将重命名为 dst
对应文件名;当 dst
为文件夹时候,将文件 src
复制到 dst
文件夹下。
- 移动/重命名函数
shutil.move()
shutil.move(src, dst, copy_function=copy2)
这分为两种情况,当 dst
为文件路径时候,将文件 src
移动到 dst
所在文件夹,并将重命名为 dst
对应文件名;当 dst
为文件夹时候,将文件 src
移动到 dst
文件夹下。
2. 示例 demo
以下列的文件目录情况作为 demo 的演示。
.
├── folder1
│ └── file1.txt
└── folder2
└── file2.txt
- 将
file1.txt
复制到folder2
下
import shutil
shutil.copy('./folder1/file1.txt', './folder2')
- 将
./folder2/file1.txt
重命名为./folder2/file3.txt
import shutil
shutil.copy('./folder2/file1.txt', './folder2/file3.txt')
- 将
file3.txt
移动到folder1
import shutil
shutil.copy('./folder2/file3.txt', './folder1')