Python os模块是Python提供的访问操作系统功能的模块,如打开、读、写、关闭文件,访问目录等等。使用os模块Python开发者可以方便的开发出跨平台的软件。使用os模块可以做到:
1、方便的调用操作系统的基本功能
2、开发跨平台的软件
3、os模块是操作系统相关功能的轻量级封装,对于特定的复杂功能还是应该使用专用的模块。如:只想读取或写入文件,可以使用os.open(),如果要操作路径, 可以使用os.path模块;但,如果要在命令行上,读取所有文件中的所有行,请使用fileinput 模块;创建临时文件和目录的信息,可以使用tempfile 模块,高级文件和目录处理可以使用shutil 模块。
需要注意的是,os模块是和操作系统相关的,也有部分功能是某种操作系统独有的(不可移植)。
关于使用os模块的几点说明:
1、Python的所有内建操作系统相关模块的设计是这样的,只要相同的功能可用,它使用相同的接口;例如,函数os.stat(path)以相同的格式返回关于路径的统计信息(这恰好源于POSIX接口)。
2、Python os模块的功能是和操作系统相关,有些功能不具备移植性,如在Linux操作系统下, os 模块有fork()函数,在windows系统下os模块就没有fork()函数。
3、函数参数如果是路径或文件名的,参数只接受字节和字符串对象,如果返回路径或文件名,则会生成相同类型的对象。
4、如果只用所有平台都定义的属性和接口,是可以使程序在各个平台间有更好的移植性。如:所有的路径名,都使用os.path操作(split和join)。
注:os模块函数可能发生OSError,导致发生OSError异常的情况有:
1、无效的路径名或文件名
2、给出的路径名或文件名无法访问
3、当前使用的系统不支持
os模块的几个变量:
- os.error:内建OSError exception的别名。
- os.name:操作系统类型,不同版本Python可能不同,通常是“POSIX”或“NT”
- os.curdir:表示当前路径,(总是“.“)
- os.pardir:表示父目录,(总是“..”)
- os.sep:路径名中的路径分隔符(“/”或“\”)
- os.extsep:文件名和扩展名分隔符(总是“.”)
- os.altsep:操作系统支持的另外一种路径分隔符(None,‘/’)。如果所用的操作系统支持其他的分隔符,就可以使用os.altsep分隔、拆分路径;如果系统不支持,那么该值为None,如在Windows中,os.altsep为‘/’,在Linux系统中为None。
- os.pathsep:PATH环境变量中的分隔符,在POSIX系统中为‘:’,在Windows中为‘;’。
- os.linesep:文本行分隔符(“\r”或“\n”或“\r\n”)。不同操作系统下,文本行结束符不同,如windows下是\r\n,Linux系统下是\n,os.linesep是操作系统的行结束符。
- os.defpath:当使用exec函数族的时候,如果没有指定PATH环境变量,则默认会查找os.defpath中的值作为子进程PATH的值。
- os.devnull:系统上null设备的路径。(“/dev/null”,等),在Windows下为‘nul’,在POSIX下为‘/dev/null’。
os模块变量示例:
使用os模块要先导入,名称:os
windows环境下:
Linux环境下: