os 模块是代码与操作系统之间的桥梁,与操作系统进行交互
import os
-
文件夹相关
os.makedirs() #递归创建文件夹
os.removedirs() #直接删除所有文件夹,如果文件夹里有文件,不删除文件夹
os.mkdir() #单个创建文件夹
os.rmdir() #单个删除文件夹,如果文件夹里有文件,不删除文件夹,并报错
os.listdir("文件夹路径") #当前路径的文件夹下的所有内容,以列表的形式显示
-
文件相关
os.rename("旧的名字","新的名字") #给文件改名字
os.remove("文件的名字") #删除文件(删除同文件夹下的文件)
os.remove("文件的绝对路径") #想要删除的文件在别的文件夹下,括号内的参数要放该文件的绝对路径
os.stat("路径") #获取该路径下的文件或者目录信息
注意:os.stat('path/filename') 获取文件/目录信息 的结构说明 stat 结构: st_mode: inode #保护模式 st_ino: inode #节点号。 st_dev: inode #驻留的设备。 st_nlink: inode #的链接数。 st_uid: #所有者的用户ID。 st_gid: #所有者的组ID。 st_size: #普通文件以字节为单位的大小;包含等待某些特殊文件的数据。 st_atime: #上次访问的时间。 st_mtime: #最后一次修改的时间。 st_ctime: #由操作系统报告的"ctime"。
在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间(详细信息参见平台的文档)。
-
路径相关
os.getcwd() #括号内无参数,获取文件的当前绝对路径
os.chdir("目标绝对路径") #跳转到该目标绝对路径下
os.curdir #当前目录
os.pardir #父级或者说上一级
-
操作系统相关
os.sep #获取当前操作系统的分隔符
os.linesep #获取当前操作系统的终止符,相当于换行
os.pathsep #获取环境变量里的分隔符 Windows中为 ; liunx中为 :
os.name #windows 返回nt Linux返回posix
-
执行系统命令相关
os.system()
os.popen()
os.environ() #操作系统的环境变量
-
路径相关(path相关)
os.path.abspath("路径") #返回一个规范的绝对路径
os.path.split("路径") #把路径分割成目录和文件名,并且以元祖的形式显示
os.path.basename("路径") #返回路径中的文件名,即上一个元祖的第二个元素
os.path.dirname("路径") #返回路径中的文件夹名,即上一个元祖的第一个元素.可以快速求得文件父目录的绝对路径
练习:
指定一个盘符,显示这个盘符下的所有内容,让用户切换到他所输入的目录,并显示该目录下的所有内容
print(os.listdir("路径")) #获取该路径下的所有内容
user = input("请输入目录") #用户输入目录
os.chdir(user) #切换到用户输入的目录,如果输入的目录不是绝对路径,需要拼接为绝对路径
ret = os.getcwd() #查看当前绝对路径
print(os.listdir(ret)) #查看用户输入的目录下的所有内容
os.path.join("路径","路径","路径"......) #拼接多个路径,第一个路径必须是从磁盘根部出发,即绝对路径,之后的路径是目标路径.
os.path.exists("路径") #判断路径是否存在.如果路径存在就返回True,如果路径不存在,就返回False
os.path.isabs("路径") #判断是不是绝对路径.如果是绝对路径就返回True,不是绝对路径就返回False
os.path.isfile("路径") #判断该路径下是否是文件,是返回True.不是返回False
os.path.isdir("路径") #判断该路径下是否是文件夹,是就返回True.不是返回False
os.path.getmtime("路径") #返回该路径的文件或文件夹最后操作的时间,以时间戳的形式显示
os.path.getsize("路径') #获取该路径的文件的大小,显示的是字节,获取文件夹的大小时不准确