1、os模块介绍
- os是“operating system”(操作系统)的缩写。
- os模块提供python程序与操作系统进行交互的接口,使用os模块可以方便地与操作系统进行交互,如创建目录、删除文件、重命名、获取文件大小、执行shell命令等等。
- 同时os模块还可以极大增强代码的可移植性。os模块不受平台限制。
2、os模块常用功能
os.getcwd() # 获取当前工作目录。默认情况下,得到的结果与sys.path里面的第一个值一样。
os.chdir("dirname") # 切换工作目录,相当于cmd中的cd命令
os.listdir('dirname') # 获取指定目录下的所有文件和文件夹,包括隐藏文件,并返回列表
os.mkdir('dirname') # 创建文件夹
os.makedirs('dirname1/dirname2') #递归创建多层目录
os.remove() # 删除一个文件
os.rmdir('dirname') # 删除单级空目录(即空文件夹),若目录不为空则无法删除,则报错
os.rename('oldname','newname') # 重命名文件/目录
os.system("rm -rf /") # 运行终端命令
os.environ # 获取系统环境变量,返回一个字典。由于有些字符不适合直接写进代码里,如数据库的密码、个人账户的密码等,可以写到自己本机的环境变量里,要用的时候通过os.environ取出来,这样可以增加密码的安全性。
os.environ.get('KEY') # 获取系统环境变量的某一个值
os.environ['KEY'] # 获取系统环境变量的某一个值
os.getenv('KEY') # 获取系统环境变量的某一个值
os.stat('path/filename') # 获取文件或目录的详细信息
print(os.stat('os模块.py'))
print(os.stat('os模块.py').st_atime)
os.stat_result(st_mode=33206, st_ino=562949953429221, st_dev=1678084536, st_nlink=1, st_uid=0, st_gid=0, st_size=398, st_atime=1672037960, st_mtime=1672037958, st_ctime=1672035387)
st_size -- 文件的大小,单位是字节
st_atime -- 最后一次访问时间
st_mtime -- 最后一次修改的时间
st_ctime -- 在windows平台上是文件的创建时间;linuw系统没有创建时间的概念
os.name # 获取当前使用的是什么系统。win -- 'nt'; Linux -- 'posix'
os.path.split(path) # 把一个路径分割成目录和文件名,返回一个元组。如果是一个文件夹的路径,会从这个路径的最后一层前面拆分
os.path.dirname(path) # 拿到一个路径的父级路径,即拿到os.path.split()的第一个元素
os.path.basename(path) # 和os.path.dirname()相反,os.path.basename()拿到os.path.split()的第二个元素。若path以/或\结尾,那么就会返回空值。
os.path.exists(path) # 判断一个路径是否存在,存在返回True,不存在返回False
os.path.isabs(path) # 判断路径是否是绝对路径,是返回True
os.path.isfile(path) # 判断文件路径是否存在
os.path.isdir(path) # 判断目录是否存在
os.path.join(path1[, path2[, ...]]) # 把多个路径拼接起来,第一个绝对路径之前的参数将被忽略
os.path.getatime(path) # 获取文件或目录的最后一次访问时间
os.path.getmtime(path) # 获取文件或目录的最后一次修改时间
os.path.getctime(path) # 获取文件或目录的创建时间(Windows平台中)
os.path.getsize(path) # 获取文件的大小
3、乱码问题
Pycharm默认的编码方式是utf-8,而上图中tree命令调用的是系统的功能,windows系统的编码方式是gbk,所以就会出现乱码问题。
方法一:改pycharm的编码方式(不推荐)
File --> Settings --> Editor --> file Encodings
方法二:改windows的编码方式
win+r打开cmd命令窗口,输入intl.cpl