在日常工作中,经常需要用到操作系统,以及文件目录相关的内容,属于系统运维相关的必备知识点,本文主要简述Python中与os模块及os.path模块相关内容,仅供学习分享使用,如有不足之处,还请指正。
导入os模块
os模块是Python的内置标准库,提供了一种使用与操作系统相关的功能的便捷式途径。如果需要调用os模块,需要通过import的方式导入,如下所示:
1 import os
2 import os.path
os模块系统命令
在os模块中,与操作系统相关的常用方法,如下所示:
os模块获取环境变量,如下所示:
1 path1 = os.getenv('path') # 获取环境变量
2 path2 = path1.split(sep=';')
3 for p in path2:
4 print(p)
5
6 os1 = os.getenv('OS') # 获取 操作系统名
7 print(os1)
8
9 username = os.getenv('USERNAME') # 获取 登录账号名
10 print(username)
os模块调用操作系统命令,示例如下所示:
1 os.system('notepad') # 调用window相关命令
2
3 os.system('ping www.baidu.com') # 调用ping命令
4
5 os.system('ipconfig') # 调用ipconfig命令
6
7 os.system('cmd') # 打开命令行窗口
通过startfile方式启动文件,示例如下所示:
1 os.startfile(path=r"D:\Program Files (x86)\Notepad++\notepad++.exe") # 打开文件
操作系统名称,分隔符,换行符相关内容,示例如下所示:
1 name = os.name # 返回操作系统名称 windows-->nt linux,uninx-->posix
2 print(name)
3
4 sep = os.sep # 分隔符 \
5 print(sep)
6
7 linesep = os.linesep # 换行符
8 print(repr(linesep)) # windows--> '\r\n' linux-->\n
注意事项,如果在操作命令行输出时,出现乱码情况,如下所示:
则可以设置File-->Settings-->File Encodings-->Global Encoding 为GBK来解决,设置完毕后,重新执行,乱码问题解决,如下所示:
os模块文件操作
在os模块中,与文件相关的常用方法,如下所示:
获取文件的所有属性(包括文件大小,创建时间,修改时间,访问时间等),如下所示:
1 # os.stat_result(st_mode=33206, st_ino=844424930288389, st_dev=44815083, st_nlink=1, st_uid=0, st_gid=0, st_size=1931, st_atime=1625411990, st_mtime=1625411889, st_ctime=1625405477)
2 osstat = os.stat('login.py') # 获取文件的所有信息,返回的对象类型
3 print(osstat)
os模块目录操作
在os模块中,与目录相关的常用方法,如下所示:
os模块下,与模块相关的常用方法,示例如下所示:
1 cwd = os.getcwd() # 获取当前工作目录,不带最后的\
2 print(cwd)
3
4 os.mkdir(path='movie') # 创建目录
5
6 os.makedirs(name='movie/gangtai') # 创建多级目录
7
8 # 返回目录下所有的内容
9 files = os.listdir(path='D:\AiSmoking')
10 for file in files :
11 print(file)
os.path模块文件及目录操作
os.path模块属于os的子模块,其中与文件及目录相关的常用方法,如下所示:
os.path模块下,与文件及目录相关的内容,如下所示:
1 flag = os.path.exists(path='D:\AiSmoking\logs') # 判断路径是否存在
2 print(flag)
3 p = os.path.abspath('moive') # 获取当前相对路径的绝对路径
4 print(p)
5
6 flag = os.path.isabs('movie') # 判断当前路径是否是绝对路径
7 print(flag)
8
9 flag = os.path.isdir('movie') # 判断当前路径是不是一个目录
10 print(flag)
11
12 flag = os.path.isfile('movie') # 判断当前路径是不是一个文件
13 print(flag)
14
15 real_path = os.path.realpath('合同') # 获取真实路径
16 print(real_path)
备注
次北固山下
【作者】王湾 【朝代】唐
客路青山外,行舟绿水前。
潮平两岸阔,风正一帆悬。
海日生残夜,江春入旧年。
乡书何处达?归雁洛阳边。