1. shutil库概述
简介
shutil是Python中的一个标准库,它提供了一系列对文件和文件集合的高级操作。“shutil”这个名字是“shell utilities”(外壳工具)的缩写,它的功能类似于在shell脚本中对文件进行操作的命令,但通过Python代码来实现,使得操作更加灵活和可编程。
导入方式
要使用shutil库,只需在Python脚本或交互式环境中使用`import shutil`语句。例如:
```python
import shutil
```
2. 文件复制操作
shutil.copy()方法
功能描述:这个方法用于将一个文件从源路径复制到目标路径。如果目标路径是一个目录,那么会在该目录下创建一个与源文件同名的文件。
参数说明:它接受两个参数,第一个参数是源文件的路径,第二个参数是目标文件或目录的路径。例如,要将文件`/home/user/src.txt`复制到`/home/user/dest/`目录下,可以这样写:
```python
import shutil
shutil.copy('/home/user/src.txt', '/home/user/dest/')
```
注意事项:如果目标路径已经存在同名文件,那么会覆盖该文件。所以在使用时要确保不会意外覆盖重要数据。
shutil.copy2()方法
功能描述:和`shutil.copy()`类似,不过`shutil.copy2()`还会尽可能地保留文件的元数据(如文件的访问时间、修改时间等)。
参数说明:参数和`shutil.copy()`相同。例如:
```python
import shutil
shutil.copy2('/home/user/src.txt', '/home/user/dest/')
```
3. 文件移动操作
shutil.move()方法
功能描述:用于将文件或目录从一个位置移动到另一个位置。它可以用于重命名文件或目录,也可以将文件移动到其他目录。
参数说明:第一个参数是源文件或目录的路径,第二个参数是目标文件或目录的路径。例如,将文件`/home/user/src.txt`移动到`/home/user/dest/`目录下并改名为`new_src.txt`:
```python
import shutil
shutil.move('/home/user/src.txt', '/home/user/dest/new_src.txt')
```
注意事项:如果目标路径已经存在同名文件或目录,那么会根据具体情况进行覆盖或合并操作。当移动目录时,会递归地移动目录中的所有内容。
4. 文件和目录删除操作
shutil.rmtree()方法
功能描述:用于删除一个目录及其所有内容。这是一个比较危险的操作,因为一旦执行,目录下的所有文件和子目录都会被永久删除。
参数说明:它只接受一个参数,即要删除的目录的路径。例如,要删除`/home/user/dir_to_delete`目录:
```python
import shutil
shutil.rmtree('/home/user/dir_to_delete')
```
注意事项:使用时要非常小心,最好在操作之前备份重要的数据。因为没有回收站的概念,删除后很难恢复数据。
5. 文件归档操作(压缩与解压)
shutil.make_archive()方法
功能描述:用于创建一个归档文件(如zip、tar等格式)。它可以将一个目录及其内容打包成一个压缩文件,方便存储和传输。
参数说明:它有多个参数,其中`base_name`是归档文件的名称(不包括扩展名),`format`是归档文件的格式(如'zip'、'tar'等),`root_dir`是要归档的目录的路径。例如,将`/home/user/dir_to_archive`目录打包成一个zip文件:
```python
import shutil
shutil.make_archive('/home/user/archive', 'zip', '/home/user/dir_to_archive')
```
shutil.unpack_archive()方法
功能描述:用于解压缩归档文件。它可以识别多种归档格式,如zip、tar等,并将文件解压到指定的目录。
参数说明:`filename`是要解压的归档文件的路径,`extract_dir`是解压后的文件存放的目录路径。例如,解压`/home/user/archive.zip`文件到`/home/user/extracted_dir`目录:
标签:文件,Python,archive,详解,user,home,shutil,目录 From: https://blog.csdn.net/chinansa/article/details/145115107```python
import shutil
shutil.unpack_archive('/home/user/archive.zip', '/home/user/extracted_dir')
```