这个模块包含普遍的操作系统功能。如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。
即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行。
一个例子就是使用os.sep
可以取代操作系统特定的路径分割符。
下面列出了一些在os
模块中比较有用的部分。它们中的大多数都简单明了。
os.name
字符串指示你正在使用的平台。比如对于Windows,它是'nt'
,而对于Linux/Unix用户,它是'posix'
。os.getcwd()
函数得到当前工作目录,即当前Python脚本工作的目录路径。os.getenv()
和os.putenv()
函数分别用来读取和设置环境变量。os.listdir()
返回指定目录下的所有文件和目录名。os.remove()
函数用来删除一个文件。os.system()
函数用来运行shell命令。os.linesep
字符串给出当前平台使用的行终止符。例如,Windows使用'\r\n'
,Linux使用'\n'
而Mac使用'\r'
。os.sep代替文件目录分隔符,llinux:'/' windows:'\\'
- os.rmdir()删除空目录
- os.mkdir创建空目录
- os.makedirs()创建多层递归目录
- os.removedirs()删除剁成递归目录
若要删除非空目录 ,可使用shutil模块中的rmtree函数
os.environ返回环境变量列表
os.getenv()获取单个环境变量的值
os.rename()文件或文件夹重名命名
os.chdir()进入指定目录
#FileName::os_module.py
#输入os标准库模块
import os
try:
#获取平类类型
if os.name == 'nt':
print('当前平台为windows')
#执行外部命令,例如显示文件列表
os.system('dir')
elif os.name == 'posix':
print('当前平台为Linux/Unix')
#执行外部命令,例如显示文件列表
os.system('ls -l')
else:
print('位置类型的平台!')
print('-------------------------')
#获取当前工作路径
print('当前工作路径为:',os.getcwd())
#获取指定环境变量的值
print('环境变量JAVA_HOME的值为:',os.getenv('JAVA_HOME'))
print("-------------------------")
#异常处理嵌套
try:
#创建空文件夹
os.mkdir('新文件夹')
except FileExistsError:
print('文件夹 已经 存在,无需创建')
try:
#删除文件夹
os.rmdir('新文件夹')
#获取当前目录下的文件列表,并打印
except FileNotFoundError:
print('要删除的文件夹不存在,或者已经被删除')
try:
#递归创建一个空的文件夹,os.sep 在此等于 ‘\\’
folderPath = os.getcwd() + os.sep + os.path.join('custom','Python','Folder')
print(folderPath)
os.makedirs(folderPath)
except FileExistsError:
print('多重文件夹已经存在')
try:
os.rmdir('custom')
except OSError:
print('不能使用rmdir删除非空目录')
#递归删除一个文件夹(所有目录级下只有一个相应的文件夹,否则删除不会完整)
os.removedirs(folderPath)
print('打印当前目录下的所有文件夹-----------')
for fileName in os.listdir():
#如果是文件夹,则打印文件夹名
if os.path.isdir(fileName):
print(fileName)
print('获取指定文件的属性:---------------')
st = os.stat("myClass.py")
print(st)
except NameError:
print('抛出异常')