Python的os模块是一个用于与操作系统进行交互的标准库模块。它提供了丰富的功能来处理文件和目录、执行系统命令、获取和设置环境变量等。
工作目录操作
获取当前工作目录
os.getcwd()
- 参数:无
- 返回值:一个字符串,表示当前工作目录的路径。这个路径是Python解释器开始执行脚本时所在的目录,或者是最后通过
os.chdir(path)
函数改变的目录。
改变当前工作目录
os.chdir(path)
-
参数:
path
(必需):一个字符串,指定要更改到的目标目录的路径。 -
返回值:无
目录操作
创建一个目录
os.mkdir(path,mode,dir_fd)
- 参数
path
(str): 要创建的目录路径。mode
(int, optional): 指定目录的权限,默认值是0o777
。在某些系统上可能会被umask
覆盖。dir_fd
(optional): 如果提供,此路径相对于dir_fd
指定的目录
- 返回值:无
递归创建目录。如果中间的目录不存在,也会一并创建。
os.makedirs(name,mode,exist_ok)
- 参数
name
(str): 要创建的目录路径。mode
(int, optional): 指定目录的权限,默认值是0o777
。在某些系统上可能会被umask
覆盖。exist_ok
(bool, optional): 如果为True
,当目标目录已经存在时不会引发异常。如果为False
,当目标目录已经存在时会引发FileExistsError
。
- 返回值:无
删除一个目录。该目录必须是空的,否则会引发 OSError
异常。
os.rmdir(path,dir_fd)
- 参数
path
(str): 要删除的目录路径。dir_fd
(optional): 如果提供,此路径相对于dir_fd
指定的目录。
- 返回值:无
递归删除目录。从指定路径开始,依次删除各级目录。如果目录为空,则删除之,直至某个目录非空或所有目录都被删除。
os.removedirs(name)
- 参数:
name
(str): 要删除的目录路径。 - 返回值:无
文件操作
虽然os
模块没有直接创建文件的方法,但可以通过open
函数创建文件。
open('file.txt', 'w').close() # 创建一个空文件
删除指定路径的文件。如果路径指向的是一个目录,将引发 IsADirectoryError
异常。
os.remove(path,dir_fd)
- 参数:
path
(str): 要删除的文件路径。dir_fd
(optional): 如果提供,此路径相对于dir_fd
指定的目录。
- 返回值:无
重命名文件或目录
os.rename(src,dst,src_dir_fd,dst_dir_fd)
- 参数:
src
(str): 原文件或目录路径。dst
(str): 新文件或目录路径。src_dir_fd
(optional): 如果提供,src
是相对于src_dir_fd
指定的目录。dst_dir_fd
(optional): 如果提供,dst
是相对于dst_dir_fd
指定的目录。
- 返回值:无
文件属性
检查指定的路径是否是一个文件
os.path.isfile(path)
- 参数:
path
(str) - 要检查的路径。 - 返回值:如果路径是一个存在的文件,返回
True
;否则返回False
。
检查指定的路径是否是一个目录
os.path.isdir(path)
- 参数:
path
(str) - 要检查的路径。 - 返回值:如果路径是一个存在的目录,返回
True
;否则返回False
。
返回指定路径的文件大小(以字节为单位)
os.path.getsize(path)
-
参数:
path
(str) - 要获取大小的文件路径。 -
返回值:返回文件的大小(以字节为单位)。
获取文件最后修改时间
os.path.getmtime(path)
-
参数:
path
(str) - 要获取修改时间的文件路径。 -
返回值:返回文件最后修改时间的时间戳(自纪元以来的秒数表示,通常是 Unix 时间戳)。
从路径中获取文件名(不包含目录部分)
os.path.basename(path)
-
参数:
path
(str) - 要提取文件名的路径。 -
返回值:返回路径中的文件名部分。
从路径中获取目录名(不包含文件名部分)
os.path.dirname(path)
-
参数:
path
(str) - 要提取目录名的路径。 -
返回值:返回路径中的目录名部分。
路径操作
检查文件或目录是否存在
os.path.exists(path)
-
参数:
path
(str) - 要检查的文件或目录路径。 -
返回值:如果路径存在,返回
True
;否则返回False
。
将一系列的路径片段解析为绝对路径
path.resolve([...paths])
- 参数:
...paths
(string[]):一个或多个路径片段的序列 - 返回值:一个字符串,该字符串是绝对路径。
方法返回从两路径的相对路径
path.relative(from, to)
- 参数
from
(str):起始路径。to
(str):目标路径。
- 返回值:一个字符串,该字符串表示从
from
到to
的相对路径。
连接一个或多个路径组件,返回一个合并后的路径。
os.path.join(path,*paths)
- 参数
path
(str) - 基础路径。*paths
(str) - 需要连接到基础路径的其他路径组件。
- 返回值:返回合并后的路径
将路径分割为目录和文件名两部分
os.path.split(path)
-
参数:
path
(str) - 要分割的路径。 -
返回值:返回一个元组,包含目录和文件名两部分。
将路径分割为文件名和扩展名两部分
os.path.splitext(path)
-
参数:
path
(str) - 要分割的路径。 -
返回值:返回一个元组,包含文件名和扩展名两部分。
目录遍历
os.listdir
返回指定目录中的所有文件和目录的名称列表。它不会递归遍历子目录。
os.listdir(path,dir_fd)
- 参数
path
(str, optional): 要列出内容的目录路径。如果未指定,默认使用当前工作目录。dir_fd
(optional): 如果提供,此路径相对于dir_fd
指定的目录
- 返回值:一个包含目录中所有文件和目录名的列表。
os.walk
生成目录树下的所有文件名,递归遍历目录中的所有子目录。它提供了遍历目录树的简单方法
os.walk(top,topdown)
- 参数
top
(str): 要遍历的目录树的顶级目录路径topdown
(bool, optional): 如果为True
(默认值),则首先遍历顶级目录,否则首先遍历子目录。
- 返回值:一个生成器,生成一个三元组
(root, dirs, files)
:root
(str): 当前正在遍历的目录的路径。dirs
(list):root
目录中子目录的名称列表。files
(list):root
目录中非目录的名称列表
示例