10.4 os模块的使用
os模块的使用
os模块也是我们平时工作中很常用到的一个模块,通过os模块调用系统命令,获得路劲,获取操作系统的类型等都是使用该模块。下面我们就了解一下os模块。
1,通过os获取系统类型
import os
print(os.name)
这个就是查看我们系统的类型,如果是windows系统,os.name = 'nt',如果是linux系统os.name = 'posix',不同的操作系统是命令可能不一样。所以在使用系统命令之前,我们先要判断系统是linux系统还是windows系统。
2,执行系统命令
很多情况,我们通过python来代用系统命令,
import os
os.system(‘ipconfig’)
content=os.popen('ipconfig').read()
print(content)
解释:
该代码调用了windows系统的ipconfig命令,ipconfig是用来查看windows系统ip的。os.system(‘ifconfig’)只会调用系统的命令,但是当我们需要获得系统命令最后的执行结果的时候该怎么办呢?
这时候我们就用os.popen方法,os.popen()返回的是一个file对象,我们可以通过file.read()来获得最后系统命令最终的结果
- 目录和文件相关操作
下面我们通过例子来看一下
import os
print(os.getcwd())
##获得路径
os.chdir('d:')
print(os.getcwd())
os.chdir(r'E:\test')
##当前目录切换到d:目录下,在切换回来
print(os.listdir(os.getcwd()))
#列出当前目录的文件
print(os.listdir('C:\Python27'))
#列出C:\Python27目录下的文件
os.mkdir('abc')
#在当前目录下创建abc目录
os.remove('1.txt')
# 删除当前目录下的1.txt文件,(如果文件不存在会报错)
print(os.linesep)
#打印操作系统的分隔符,linux系统的分隔符\n,windows系统的分隔符\r\n,mac系统的分隔符\r
print(os.path.join(os.getcwd(), 'abc.txt'))
# E:\test\abc.txt
print(os.path.islink(os.getcwd()))
# False
print(os.path.join(os.getcwd(), 'abc.txt'))
#只是拼接,并不出创建 # E:\test\abc.txt
path1 = os.path.join(os.getcwd(), 'abc.txt')
print(os.path.split(path1))
#把最后文件和目录分开# ('E:\\test', 'abc.txt')
Print(os.path.splitdrive(path1)) #把最初的目录和后面分开
# ('E:', '\\test\\abc.txt')
Print(os.path.splitext(path1)) #把目录和后缀名分开
# ('E:\\test\\abc', '.txt')
if not os.path.exists(r'E:\test\aaa'):
os.mkdir(r'E:\test\aaa')
##当前目录下存在aaa目录,不创建,当前不存在aaa目录,创建aaa目录
print(os.path.dirname(r'E:\test\test.py'))
#获得E:\test\test.py文件的目录
解释:
- os.getcwd() 获得目录的当前系统程序工作路劲
- os. chdir(‘目标目录’) 切换到目标目录
- os.listdir(‘字符串目录’) 列出字符串目录下的所有文件
- os.mkdir('目录') 创建目录
- os.remove('1.txt') 删除文件,文件不存在时会报错
- os.linesep 打印操作系统的分隔符,linux系统的分隔符\n,windows系统的分隔符\r\n,mac系统的分隔符\r
- os.path.join(os.getcwd(), 'aaa', ‘bbb’, ‘ccc’) 拼接出来多级目录:E:\test\aaa\bbb\ccc
- os.path.exists(‘目录’) 判断目录是否存在
- os.path.split(‘文件或者目录’) 把最后的一个目录或者文件和前面的目录分开,返回一个tuple
10,os.path.splitext(‘文件’) 把文件的后缀名和前面分开,返回一个tuple
os.fork()

浙公网安备 33010602011771号