1、os模块

os模块提供了很多允许你的程序与操作系统直接交互的功能

os模块的主要功能:处理文件和目录,系统相关,执行命令,管理进程



检验给出的路径是否是一个文件:os.path.isfile()
检验给出的路径是否是一个目录:os.path.isdir()

判断是否是绝对路径:os.path.isabs()
检验给出的路径是否真地存:os.path.exists()


获得绝对路径: os.path.abspath()  

获取文件名:os.path.basename()

运行shell命令: os.system()

读取操作系统环境变量HOME的值:os.getenv("HOME")



1.1os不带path:系统相关



方法和变量   用途
os.name 查看当前操作系统的名称。windows平台下返回‘nt’,Linux则返回‘posix’。
os.environ  获取系统环境变量
os.sep  当前平台的路径分隔符。在windows下,为‘\’,在POSIX系统中,为‘/’。
os.altsep   可替代的路径分隔符,在Windows中为‘/’。
os.extsep   文件名和文件扩展名之间分隔的符号,在Windows下为‘.’。
os.pathsep  PATH环境变量中的分隔符,在POSIX系统中为‘:’,在Windows中为‘;’。
os.linesep  行结束符。在不同的系统中行尾的结束符是不同的,例如在Windows下为‘\r\n’。
os.devnull  在不同的系统上null设备的路径,在Windows下为‘nul’,在POSIX下为‘/dev/null’。
os.defpath  当使用exec函数族的时候,如果没有指定PATH环境变量,则默认会查找os.defpath中的值作为子进程PATH的值。



1.2文件和目录操作



方法和变量   用途
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
os.curdir   返回当前目录: ('.')
os.pardir   获取当前目录的父目录字符串名:('..')
os.makedirs('dir1/dir2')    可生成多层递归目录
os.removedirs(‘dirname1’)   递归删除空目录(要小心)
os.mkdir('dirname') 生成单级目录
os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除并报错
os.listdir('dirname')   列出指定目录下的所有文件和子目录,包括隐藏文件
os.remove('filename')   删除一个文件
os.rename("oldname","new")  重命名文件/目录
os.stat('path/filename')    获取文件/目录信息
os.path.abspath(path)   返回path规范化的绝对路径
os.path.split(path) 将path分割成目录和文件名二元组返回
os.path.dirname(path)   返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path)  返回path最后的文件名。如果path以/或\结尾,那么就会返回空值。
os.path.exists(path或者file)  如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) 如果path是绝对路径,返回True
os.path.isfile(path)    如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path)  返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path)  返回path所指向的文件或者目录的最后修改时间
os.path.getsize(filename)   返回文件包含的字符数量



在Python中,使用windows的文件路径时一定要小心,比如你要引用d盘下的1.txt文件,那么路径要以字符串的形式写成'd:\\1.txt'或者r'd:\1.txt

前面的方式是使用windwos的双斜杠作为路径分隔符,后者是使用原生字符串的形式,

以r开始的字符串都被认为是原始字符串,表示字符串里所有的特殊符号都以本色出演,不进行转义,

此时可以使用普通windows下的路径表示方式。这两种方法使用哪种都可以,但不可混用。

1.3os.walk(top, topdown=True, οnerrοr=None, followlinks=False)



walk方法是os模块中非常重要和强大的一个方法。可以帮助我们非常便捷地以递归方式自顶向下或者自底向上的方式遍历目录树,对每一个目录都返回一个三元元组(dirpath, dirnames, filenames)。

三元元组(dirpath,dirnames,filenames):
 
dirpath - 遍历所在目录树的位置,是一个字符串对象
dirnames - 目录树中的子目录组成的列表,不包括("."和"..")
filenames - 目录树中的文件组成的列表



 

 2、sys模块



1 sys.argv           命令行参数List,第一个元素是程序本身路径
 2 sys.exit(n)        退出程序,正常退出时exit(0)
 3 sys.version        获取Python解释程序的版本信息
 4 sys.maxint         最大的Int值
 5 sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
 6 sys.platform       返回操作系统平台名称
 7 sys.stdout.write('please:')  #标准输出 , 引出进度条的例子, 注,在py3上不行,可以用print代替
 8 val = sys.stdin.readline()[:-1] #标准输入
 9 sys.getrecursionlimit() #获取最大递归层数
10 sys.setrecursionlimit(1200) #设置最大递归层数
11 sys.getdefaultencoding()  #获取解释器默认编码
12 sys.getfilesystemencoding  #获取内存数据存到文件里的默认编码