在Python中,要进行文件和目录操作是非常容易的。Python提供了一组内置模块来完成这些任务,而且这些模块相互之间协作紧密,我们可以轻松地完成各种文件和目录操作。在本文中,我们将分别介绍以下几个模块:os,os.path,shutil,glob。
一、os模块
os模块是Python内置的一个操作系统模块。它提供了许多与操作系统交互的函数。以下是一些常用的os模块函数:
import os # 获取当前工作目录 os.getcwd() # 改变当前工作目录 os.chdir('/path/to/new/dir') # 列出目录中的文件和子目录 os.listdir('/path/to/dir') # 创建目录 os.mkdir('/path/to/newdir') # 递归创建目录 os.makedirs('/path/to/newdir/subdir') # 删除文件 os.remove('/path/to/filename') # 删除目录 os.rmdir('/path/to/dir') # 递归删除目录 os.removedirs('/path/to/dir')
二、os.path模块
os.path模块是Python内置的用于处理路径的模块。以下是一些常用的os.path模块函数:
import os.path # 判断文件是否存在 os.path.exists('/path/to/file') # 判断是否为文件 os.path.isfile('/path/to/file') # 判断是否为目录 os.path.isdir('/path/to/dir') # 获取文件后缀名 os.path.splitext('/path/to/file') # 获取文件所在目录 os.path.dirname('/path/to/file') # 获取文件名 os.path.basename('/path/to/file') # 拼接路径 os.path.join('/path/to', 'file')
三、shutil模块
shutil模块是Python内置的与文件操作相关的模块。它提供了一组高级的文件操作函数。以下是一些常用的shutil模块函数:
import shutil # 复制文件 shutil.copy('/path/to/src', '/path/to/dest') # 复制目录 shutil.copytree('/path/to/src', '/path/to/dest') # 移动文件或目录 shutil.move('/path/to/src', '/path/to/dest') # 删除目录树 shutil.rmtree('/path/to/dir')
四、glob模块
glob模块是Python内置的用于文件名匹配的模块。它提供了一组函数用于获取符合特定模式的文件名。以下是一些常用的glob模块函数:
import glob # 获取当前目录下所有 .txt 文件路径 glob.glob('./*.txt') # 获取指定目录下所有 .py 文件路径 glob.glob('/path/to/dir/*.py') # 获取指定目录及其子目录下所有 .jpg 文件路径 glob.glob('/path/to/dir/**/*.jpg')
完整代码示例:
import os import os.path import shutil import glob # os模块 print(os.getcwd()) os.chdir('/path/to/new/dir') print(os.listdir('/path/to/dir')) os.mkdir('/path/to/newdir') os.makedirs('/path/to/newdir/subdir') os.remove('/path/to/filename') os.rmdir('/path/to/dir') os.removedirs('/path/to/dir') # os.path模块 print(os.path.exists('/path/to/file')) print(os.path.isfile('/path/to/file')) print(os.path.isdir('/path/to/dir')) print(os.path.splitext('/path/to/file')) print(os.path.dirname('/path/to/file')) print(os.path.basename('/path/to/file')) print(os.path.join('/path/to', 'file')) # shutil模块 shutil.copy('/path/to/src', '/path/to/dest') shutil.copytree('/path/to/src', '/path/to/dest') shutil.move('/path/to/src', '/path/to/dest') shutil.rmtree('/path/to/dir') # glob模块 print(glob.glob('./*.txt')) print(glob.glob('/path/to/dir/*.py')) print(glob.glob('/path/to/dir/**/*.jpg'))
总结
Python提供了用于文件和目录操作的一组内置模块,包括os、os.path、shutil和glob模块。通过这些模块,我们可以轻松地完成各种文件和目录操作。在实际开发中,根据需求选取相应的模块,可以使代码更加简洁明了。