os模块包含了普遍的操作系统功能。os模块包含了很多内容,其中子模块os.path还包括了一些用于检查、构造、删除目录和文件的函数以及一些处理路径的函数(例如os.path.split和os.path.join可以让你在大部分情况下忽略os.path)。
本文只介绍一下os模块的重要变量和函数,os.path模块在下一篇博客中介绍。
os模块与操作系统有关,因此如果希望程序与平台无关,那么os模块相当重要。例如用os.sep来取代路径分隔符,是程序既能运行在windows上,也能运行在Linux上。
os模块通用的重要变量如下:
1、os.environ 当前环境变量的映射对象。对映射的修改会反映到当前环境中。
2、os.name 字符串,指示正在使用的操作系统平台。windows下为'nt',Linux/unix下文'posix'。
3、os.linesep 字符串,行分隔符。windows下为'\r\n',linux为'\n‘,mac下为'\r'.
4、os.sep 字符串,路径名中的分隔符。windows下为'\\'(Python语法中其中一个斜杠进行转义).Linux下为'/',mac下为':' 。
5、os.pathsep 字符串,分隔路径的分隔符。windows下为";",Linux下为":"。
os模块中的重要函数如下:
1、os.getcwd() 获取当前工作目录,即当前Python脚本工作的目录路径。
2、os.listdir() 返回指定目录下的文件名和路径名。
3、os.remove() 用于删除一个文件。
4、os.system(command) 运行shell命令,主要用于运行外部程序。例如在Linux下启动浏览器:
1 | os.system( '/usr/bin/firefox' ) |
在windows下启动浏览器(使用Firefox浏览器的默认安装路径):
1 | os.system( 'c:\\"Program Files"\\"Mozilla Firefox"\\firefox.exe' ) #使用双引号是因为路径中存在空格,如想减少斜杠的使用,可以使用原始字符串 |
Google Chrome的默认安装路径是:C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe
使用双引号是因为路径名中存在空格,而DOS会在空格处停下来。另外存在的一个问题是,在IDLE中运行上述os.system代码时,会看到DOS窗口出现。因此,使用上述代码不是很完美,另外一个能够很完美的解决该问题的函数是windows特有的函数--os.startfile。os.startfile接受一般路径,即使包含空格也没关系,而os.system必须把包含空格的部分放在引号中。
1 | os.startfile(r 'C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe' ) |
os模块中还有一个重要函数os.walk(top[,topdown[,onerror[,followlinks]]]),该函数创建一个生成器对象来遍历整棵目录树。top指定目录的顶级,topdown是一个布尔值用于指定由上而下(默认)还是由下而上遍历目录。函数返回的生成器将返回元组(dirpath,dirnames,filenames),其中dirpath是一个字符串,包含通向目录的路径;dirnames是dirpath下所有子目录的一个列表;filenames是dirpath中文件的一个列表,不包括目录。 默认不会获取符号链接,除非将followlinks参数设为True。
分类:
一、进程环境------以下函数用于访问和修改与运行进程的环境相关的各个参数。
1、chdir(path) 将当前工作目录修改为path
2、chroot(path) 修改当前进程的根目录(UNIX)
3、fchdir(fd) 修改当前的工作目录。fd是已打开目录的文件描述符。(UNIX)
4、getcwd() 返回当前工作目录字符串
5、getcwddu() 返回当前工作目录的unicode字符串
二、文件和目录----------以下函数用于操作文件系统上的文件和目录
以下函数用于操作文件
1、access(path,accessmode) 检查此进程访问文件path的权限(读取、写入、执行权限)。accessmode的值分别是R_OK、W_OK、X_OK或F_OK 分别读取、写入、执行或存在。 如果得到授权返回1,否则返回0.
3、remove(path) 删除文件路径
4、removedirs(path) 递归的目录删除函数。
4、rename(src,dst) 将文件或目录src重命名为dst
5、rmdir(path) 删除目录路径