os就是“operating system”的缩写,顾名思义,os模块提供的就是各种 Python 程序与操作系统进行交互的接口。通过使用os模块,一方面可以方便地与操作系统进行交互,另一方面页可以极大增强代码的可移植性。如果该模块中相关功能出错,会抛出OSError异常或其子类异常。
1. 查看系统信息
import os
print (os.name) # 系统名称
#print (os.environ) # 系统环境信息
print (os.environ["HOME"]) #用户主目录
print(os.getpid()) #获取当前进程 ID。
print(os.getppid()) #获取当前进程的父进程 ID。
# os.putenv(key, value) #该函数用于设置环境变量。
print(os.cpu_count()) #返回当前系统的 CPU 数量。
print((os.sep)) # 返回路径分隔符。
2. 目录操作
print(os.getcwd()) # 查看当前路径
os.chdir("/Users/zhengxueming/test") # 改变当前目录
print(os.path.join("os", "path", "join"))
# 传入路径最后一个分隔符之后的子字符串
print(os.path.basename(os.getcwd()))
# 返回的是最后一个分隔符前的整个字符串
print(os.path.dirname(os.getcwd()))
# 建立/删除文件夹
os.mkdir('temp1')
os.rmdir('temp1')
# 递归建立/删除文件夹
os.makedirs('temp1/temp2')
os.removedirs('temp1/temp2')
os.listdir() # 返回list
# 判断路径是否存在
os.path.exists("./temp1")
# 函数os.path.split()的功能就是将传入路径以最后一个分隔符为界,
# 分成两个字符串,并打包成元组的形式返回;
# 前两个函数os.path.dirname()和os.path.basename()的返回值
# 分别是函数os.path.split()返回值的第一个、第二个元素。
os.path.split('/Users/zxm/test')
# 判断是否绝对路径
os.path.isabs("temp1/temp2")
# 判断文件夹是否存在
os.path.isdir('temp1')
#将文件或路径重命名,一般调用格式为os.rename(src, dst),
# 即将src指向的文件或路径重命名为dst指定的名称。
os.rename('temp1','temp3') # 改文件夹名
3. 文件操作
# 创建一个test.txt的文件
fd = os.open('test.txt', os.O_RDWR|os.O_CREAT)
# 写入内容
os.write(fd, 'This is a test file.'.encode('utf-8'))
# 关闭文件
os.close(fd)
# 判断文件是否存在
os.path.isfile('test.txt')
os.rename('test.txt','renamed_test.txt') # 改文件名
# 删除文件
os.remove('renamed_test.txt')
4. 执行系统命令
os.system('ls')
retcode = os.system('ls') # 返回0,命名执行成功
#print(type(retcode))
print("retcode:{}".format(retcode))
os.system('cat /etc/passwd|grep root')
# os.popen(command[, mode[, bufsize]])
ret = os.popen('ls').read()
print(ret)
# 建立只读文件
a = 'mkdir nwdir'
b = os.popen(a,'r',1)
print (b)
b = os.popen('cat /etc/passwd|grep root')
print(b.read())