os模块可以帮我们直接对操作系统进行操作,可以直接调用操作系统的可执行文件、命令,直接操作文件、目录等,是系统运维的核心基础。
os调用操作系统文件和命令
- os.system可以帮我们直接调用系统的命令
【示例】os.system调用windows系统的记事本程序
import os
os.system("notepad.exe")
os.system("cmd") #可以直接打开Windows的cmd
【示例】os.system调用ping命令
import os
os.system("ping www.baidu.com")
- os.startfile()可以帮我们直接调用可执行文件
import os
os.startfile("可执行文件的路径“) #在windows里面选择右键点击属性,在点击目标就可以了。
os模块-文件和目录操作
如果需要对文件和目录做其他操作,可以使用os和os.path模块
os模块
os模块下常用操作文件的方法
方法名 | 描述 |
remove(path) | 删除指定的文件 |
rename(stc,dest) | 重命名文件或目录(stc为原文件名,dest为新文件名) |
start(path) | 返回文件的所有属性 |
listdir(path) | 返回path目录下的文件和子目录列表 |
os模块下关于目录操作的相关方法,汇总如下:
方法名 | 描述 |
mkdir(dir) | 创建目录 |
makedirs(path1/path2/path3/....) | 创建多级目录 |
rmdir(path) | 删除目录 |
removedirs(path1/path2/path3/...) | 删除多级目录 |
getcwd() | 返回当前工作目录:current work dir |
chdir(path) | 把path设为当前工作目录 |
walk() | 遍历目录树 |
sep | 当前操作系统所使用的路径分隔符 |
【示例】os模块:创建、删除目录、获取文件信息等(更多大家试试吧)
#测试os模块,关于文件和目录的操作
import os
############获取文件和文件夹相关信息###############
print(os.name) #获取操作系统的信息,windows 返回nt,linux和unix以及mac返回posix
print(os.sep) #分隔符,windows为\ ,linux和unix以及mac为/
print(repr(os.linesep)) #分隔符,windows为\r\n ,linux和unix以及mac为\\n
print(os.stat('xx.py')) #文件的相关属性
############关于工作目录的操作###############
print(os.getcwd()) #打印当前的工作目录路径
os.chdir("d:") #改变工作目录路径
os.mkdir("xx") #在当前路径创建一个xx目录,该目录将在d盘下创建
############创建目录、创建多级目录、删除###############
os.rmdir('x') #删除目录,这是相对路径都是相对于当前的工作目录
os.makedirs('x/xx/xxx) #创建多级目录,该创建的是三级目录
os.removedirs('x/xx/xxx') #删除多级目录
os.path模块
os.path模块提供了目录相关(路径判断,路径切分,路径链接,文件夹遍历)的操作
方法 | 描述 |
isabs(path) | 判断path是否绝对路径 |
isdir(dir) | 判断path是否为目录 |
isfile(path) | 判断path是否为文件 |
exists(path) | 判断指定路径的文件是否存在 |
getsize(filename) | 返回文件的大小 |
abspath(path) | 返回文件的绝对路径 |
dirname(path) | 返回该文件的目录路径 |
getatime(filename) | 返回文件的最后访问时间 |
getmtime(filename) | 返回文件的最后修改时间 |
walk(top,func,arg) | 递归方式遍历目录 |
join(path,*paths) | 连接多个path |
split(path) | 对路径进行分割,以列表形式返回 |
splitext(path) | 从路径中分割文件的扩展名 |
【示例】操作前4个示例,,后面自己试试,,有问题留言讨论。
#测试os.path中关于目录、路径的操作
import os
print(os.path.isabs('dd.csv')) #判断是否为绝对路径,不是为: False
print(os.path.isdir('dd.csv')) #判断是否为目录 不是为 False
print(os.path.isfile('dd.csv')) #判断是否为文件,是文件为: True
print(os.path.exists('dd.csv')) #指定路径是否存在,存在返回 True