Python 文件操作: shutil 和 os 模块详解
在 Python 编程中,对文件的操作是非常常见的一个操作,比如读写文件、复制文件等等。在这种情况下,Python 的 shutil 和 os 模块就会显得非常的重要。
shutil 模块是 Python 中的一个高级文件操作模块,可以实现复制、移动、删除、压缩、解压缩等文件操作。os 模块则是 Python 中的标准库,主要用于操作系统相关的操作,比如文件目录的创建、删除、修改等操作。
在本篇文章中,我们将重点介绍 shutil 和 os 模块的各种用法和技巧,以便更好地理解文件操作的工作原理。
1. 复制文件
在 Python 中,要复制一个文件,我们可以使用 shutil 模块提供的 copy() 函数。下面是一个简单的例子:
```python
import shutil
shutil.copy('file1.txt', 'file2.txt')
```
在这个例子中,我们将文件 file1.txt 复制到了一个新的文件 file2.txt 中。如果你想要更改复制后文件的名字,只需要将第二个参数修改即可。另外,如果你想要复制文件时保留文件的元数据信息,可以使用 copy2() 函数,它将包含原始文件的元数据信息。
2. 移动文件
在 Python 中,要移动一个文件,我们可以使用 shutil 模块提供的 move() 函数。下面是一个简单的例子:
```python
import shutil
shutil.move('file1.txt', 'new_folder')
```
在这个例子中,我们将文件 file1.txt 移动到了一个名为 new_folder 的文件夹中。
3. 删除文件
在 Python 中,要删除一个文件,我们可以使用 os 模块提供的 remove() 函数。下面是一个简单的例子:
```python
import os
os.remove('file1.txt')
```
在这个例子中,我们删除了名为 file1.txt 的文件。如果你确定文件存在,但是想要避免因为文件不存在而导致的错误,你可以使用 path 模块中的 exists() 函数来检查文件是否存在。
4. 创建目录
在 Python 中,要创建一个目录,我们可以使用 os 模块提供的 mkdir() 函数。下面是一个简单的例子:
```python
import os
os.mkdir('new_folder')
```
在这个例子中,我们创建了一个名为 new_folder 的新文件夹。
5. 删除目录
在 Python 中,要删除一个目录,我们可以使用 os 模块提供的 rmdir() 函数。需要注意的是,这个函数只能删除空目录,如果你想要删除非空目录,可以使用 shutil 模块提供的 rmtree() 函数。下面是一个简单的例子:
```python
import shutil
shutil.rmtree('new_folder')
```
在这个例子中,我们删除了一个名为 new_folder 的文件夹,它包含了一些文件和子目录。
6. 修改文件权限
在 Python 中,我们可以使用 os 模块提供的 chmod() 函数来修改文件的权限。下面是一个简单的例子:
```python
import os
os.chmod('file1.txt', 0o777)
```
在这个例子中,我们将文件 file1.txt 的权限修改为 777。
7. 获取文件信息
在 Python 中,我们可以使用 os 模块提供的 stat() 函数来获取文件的信息,比如文件的权限、大小、修改时间等等。下面是一个简单的例子:
```python
import os
stat_info = os.stat('file1.txt')
print(stat_info.st_size) # 文件大小
print(stat_info.st_mtime) # 文件修改时间
```
在这个例子中,我们使用 stat() 函数获取了名为 file1.txt 的文件的信息,并输出了文件的大小和修改时间。
结论
在本篇文章中,我们介绍了 Python 中的 shutil 和 os 模块的各种用法和技巧。通过熟悉这些基本操作,你可以更好地操作文件,并在你的 Python 项目中充分利用这些模块提供的功能。