Python学习18:os标准库模块使用(一)

时间:2022-01-16 22:39:22

这个模块包含普遍的操作系统功能。如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。

即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在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('抛出异常')


Python学习18:os标准库模块使用(一)