Python os模块核心功能详解:目录操作、路径处理与环境变量
本文系统梳理Python中os模块的29种常用方法,涵盖工作目录获取与切换、多级目录创建删除、文件与目录的重命名及删除、路径拼接与解析、文件属性获取以及系统命令执行等核心功能。通过具体代码示例,详解os.getcwd、os.makedirs、os.path.join等关键函数的用法与返回值,帮助开发者高效进行文件系统交互与环境变量管理。
工作目录与基础路径常量
os.getcwd()
该函数用于获取当前工作目录,即当前Python脚本运行的目录路径。
print(os.getcwd())
>>E:\pycharm\test
os.chdir(“dirname”)
用于改变当前脚本的工作目录,功能等同于Shell中的cd命令。
os.chdir('E:\pycharm')
print(os.getcwd())
>>E:\pycharm
os.curdir
这是一个常量值,返回表示当前目录的字符串:'.'。
print(os.curdir)
>>.
os.pardir
这也是一个常量值,返回表示当前目录父目录的字符串:'..'。
print(os.pardir)
>>..
目录创建与递归删除
os.makedirs(‘dirname1/dirname2')
该函数用于生成多层递归目录,即使中间层级不存在也会自动创建。
os.makedirs('path1/path2')
os.chdir('./path1/path2')
print(os.getcwd())
>>E:\pycharm\test\path1\path2

os.removedirs(‘dirname1')
若指定目录为空,则将其删除,并递归检查上一级目录,若上一级目录也为空则继续删除,依此类推。
os.chdir('./path1/path2')
print(os.getcwd())
os.removedirs('E:/pycharm/test/path1/path2')
print(os.getcwd())

需要注意的是,如果尝试删除的文件夹是当前工作路径,则无法执行删除操作。
os.removedirs('E:/pycharm/test/path1/path2')

单级目录与文件管理
os.mkdir(‘dirname')
用于生成单级目录,若父目录不存在会抛出异常。
os.mkdir('./path1')

os.rmdir(‘dirname')
用于删除单级空目录,若指定目录不为空则无法删除。
os.rmdir('./path1')

目录列表与文件操作
os.listdir(‘dirname')
列出指定目录下的所有文件和子目录(包括隐藏文件),并以列表形式返回。
print(os.listdir('./'))
>>['.idea', '0.py', '1.py', 'log.py', 'log.txt', 'log.txt.1', 'os_test.py', 'test.py', '__pycache__']
os.remove()
用于删除一个文件,不能用于删除文件夹。
print(os.listdir('./'))
os.remove('./log.txt')
print(os.listdir('./'))
>>['.idea', '0.py', '1.py', 'log.py', 'log.txt', 'log.txt.1', 'os_test.py', 'test.py', '__pycache__']
>>['.idea', '0.py', '1.py', 'log.py', 'log.txt.1', 'os_test.py', 'test.py', '__pycache__']
os.rename(“oldname”,“newname”)
用于重命名文件或目录。
print(os.listdir('./'))
os.rename('./log.txt.1', 'log.other')
print(os.listdir('./'))
>>['.idea', '0.py', '1.py', 'log.py', 'log.txt.1', 'os_test.py', 'path', 'test.py', '__pycache__']
>>['.idea', '0.py', '1.py', 'log.other', 'log.py', 'os_test.py', 'path', 'test.py', '__pycache__']
系统信息与路径分隔符
os.stat(‘path/filename')
用于获取文件或目录的详细信息,返回stat结果对象。
print(os.stat('./'))
print(os.stat('./log.py'))
>>os.stat_result(st_mode=16895, st_ino=281474976733851, st_dev=265296634, st_nlink=1, st_uid=0, st_gid=0, st_size=4096, st_atime=1591056501, st_mtime=1591056501, st_ctime=1585357336)
>>os.stat_result(st_mode=33206, st_ino=1970324837041014, st_dev=265296634, st_nlink=1, st_uid=0, st_gid=0, st_size=3102, st_atime=1590469701, st_mtime=1590469701, st_ctime=1590462783)
os.sep
输出操作系统特定的路径分隔符,Windows下为"\",Linux下为"/"。
print(os.sep)
>>\
os.linesep
输出当前平台使用的行终止符,Windows下为"\r\n",Linux下为"\n"。
os.pathsep
输出用于分割文件路径的字符串,Windows下为";",Linux下为":"。
print(os.pathsep)
>>;
os.name
输出字符串指示当前使用的平台,Windows返回'nt',Linux返回'posix'。
print(os.name)
>>nt
系统命令与环境变量
os.system(“bash command”)
用于运行Shell命令,并直接显示执行结果。
os.environ
用于获取系统环境变量,返回一个字典对象。
路径解析与属性获取
os.path.abspath(path)
返回path规范化的绝对路径。
print(os.path.abspath('./log.py'))
>>E:\pycharm\test\log.py
os.path.split(path)
将path分割成目录和文件名二元组返回。
print(os.path.split('./log.py'))
>>('.', 'log.py')
os.path.dirname(path)
返回path的目录部分,实际上就是os.path.split(path)返回的第一个元素。
print(os.path.dirname('./log.py'))
>>.
os.path.basename(path)
返回path最后的文件名。如果path以/或\结尾,则返回空值,即os.path.split(path)的第二个元素。
print(os.path.basename('./log.py'))
print(os.path.basename('./'))
>>log.py
>>
os.path.exists(path)
如果path存在,返回True;如果path不存在,返回False。
print(os.path.exists('./log.py'))
print(os.path.exists('./log'))
>>True
>>False
os.path.isabs(path)
如果path是绝对路径,返回True。
print(os.path.isabs('./log.py'))
print(os.path.isabs('E:/pycharm/test/log'))
>>False
>>True
os.path.isfile(path)
如果path是一个存在的文件,返回True。否则返回False。
print(os.path.isfile('./log'))
print(os.path.isfile('./log.py'))
>>False
>>True
os.path.isdir(path)
如果path是一个存在的目录,则返回True。否则返回False,即使是文件也返回False。
print(os.path.isdir('./log.py'))
print(os.path.isdir('./path_other'))
>>False
>>True
os.path.join(path1, path2, …)
将多个路径组合后返回,若第一个参数是绝对路径,则之前的参数将被忽略。
print(os.path.join('./', 'path1', 'path2', 'path3'))
print(os.path.join('./', 'path1', 'path2', os.getcwd(), 'path3'))
>>./path1\path2\path3
>>E:\pycharm\test\path3
os.path.getatime(path)
返回path所指向的文件或者目录的最后存取时间。
print(os.path.getatime('./log.py'))
>>1590469701.9787416
os.path.getmtime(path)
返回path所指向的文件或者目录的最后修改时间。
print(os.path.getmtime('./log.py'))
>>1590469701.6769156
到此这篇关于python os模块常用的29种方法使用详解的文章就介绍到这了,更多相关python os模块内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













