sys模块包括了一组非常实用的服务,内含很多函数方法和变量,用来处理Python运行时配置以及资源,从而可以与前当程序之外的系统环境交互,如:python解释器。
sys模块的常见函数列表(import sys):
os模块负责程序与 *** 作系统的交互,提供了访问 *** 作系统底层的接口。
os模块的常见函数列表(import os):
函数-说明:
os.environ 一个dictionary 包含环境变量的映射关系
os.name 显示当前使用的平台
os.sep 显示当前平台下路径分隔符
os.linesep 给出当前平台使用的行终止符
os.remove(‘filename') 删除一个文件
os.rename(“oldname”,“newname”) 重命名文件
os.getcwd() 显示当前python脚本工作路径
os.chdir(dir) 改变当前目录,注意windows下用到转义
os.listdir(‘dirname') 返回指定目录下的所有文件和目录名
os.makedirs(‘dirname/dirname') 可生成多层递规目录
os.rmdir(‘dirname') 删除单级目录
os.getlogin() 得到用户登录名称
os.getenv(‘key') 得到环境变量配置
os.putenv(‘key') 设置环境变量
os.system() 运行shell命令,注意:这里是打开一个新的shell,运行命令,当命令结束后,关闭shell。
*** 作举例:
os.mkdir('/tmp/xx'),os.system("echo'hello' > /tmp/xx/a.txt"),os.listdir('/tmp/xx') os.rename('/tmp/xx/a.txt','/tmp/xx/b.txt'),os.remove('/tmp/xx/b.txt'),os.rmdir('/tmp/xx')
用python编写一个简单的shell :
#!/usr/bin/python import os, sys cmd = sys.stdin.readline(); while cmd: os.system(cmd); cmd = sys.stdin.readline();
os.path
函数-说明:
os.walk和os.path.walk的区别os.path.abspath() 获取绝对路径os.path.abspath(“1.txt”) == os.path.join(os.getcwd(),“1.txt”)
os.path.split() 用于分开一个目录名称中的目录部分和文件名称部分。
os.pardir 表示当前平台下上一级目录的字符 …
os.path.join(path, name) 连接目录和文件名。
os.path.basename(path) 返回文件名
os.path.dirname(path) 返回文件路径
os.path.getctime("/root/1.txt") 返回1.txt的ctime(创建时间)时间戳
os.path.exists(os.getcwd()) 判断文件是否存在
os.path.isfile(os.getcwd()) 判断是否是文件名,1是0否
os.path.isdir(‘c:Pythontemp') 判断是否是目录,1是0否
os.path.islink('/home/111.sql') 是否是符号连接,windows下不可用
os.path.ismout(os.getcwd()) 是否是文件系统安装点,windows下不可用
os.path.samefile(os.getcwd(), ‘/home') 看看两个文件名是不是指的是同一个文件
os.walk() 能够把给定的目录下的所有目录和文件遍历出来。
os.path.walk('/home/huaying', test_fun, “a.c”) 遍历/home/huaying下所有子目录包括本目录,对于每个目录都会调用函数test_fun。
函数声明:os.walk(top, topdown=True,None)
函数声明:os.path.walk(top, func, arg)1、参数top表示需要遍历的顶级目录的路径。
2、参数topdown的默认值是“True”表示首先返回顶级目录下的文件,然后再遍历子目录中的文件。当topdown的值为"False"时,表示先遍历子目录中的文件,然后再返回顶级目录下的文件。
3、参数onerror默认值为"None",表示忽略文件遍历时的错误。如果不为空,则提供一个自定义函数提示错误信息后继续遍历或抛出异常中止遍历。
返回值:函数返回一个元组,含有三个元素。这三个元素分别是:每次遍历的路径名、路径下子目录列表、目录下文件列表。
1、参数top表示需要遍历的目录路径。
2、参数func表示回调函数,即对遍历路径进行处理的函数。所谓回调函数,是作为某个函数的参数使用,当某个时间触发时,程序将调用定义好的回调函数处理某个任务。注意:walk的回调函数必须提供三个参数:第1个参数为os.path.walk的参数arg,第2个参数表示目录dirname,第3个参数表示文件列表names。注意:os.path.walk的回调函数中的文件列表不和os.walk()那样将子目录和文件分开,而是混为了一谈,需要在回调函数中判断是文件还是子目录。
3、参数arg是传递给回调函数的元组,为回调函数提供处理参数,arg可以为空。回调函数的第1个参数就是用来接收这个传入的元组的。
过程:以top为根的目录树中的每一个目录(包含top自身,如果它是一个目录),以参数(arg, dirname, names)调用回调函数funct。参数dirname指定访问的目录,参数names列出在目录中的文件(从os.listdir(dirname)中得到)。回调函数可以修改names改变dirname下面访问的目录的设置,例如,避免访问树的某一部分。(由names关联的对象必须在合适的位置被修改,使用del或slice指派。)注意:符号连接到目录不被作为一个子目录处理,并且因此walk()将不访问它们。访问连接的目录必须以os.path.islink(file)和os.path.isdir(file)标识它们,并且必须调用walk()。
区别:os.path.walk()与os.walk()产生的文件名列表并不相同。os.walk()产生目录树下的目录路径和文件路径,而os.path.walk()只产生文件路径(是子目录与文件的混合列表)。
实例:
#coding=utf-8 importos # 当前平台上一级目录字符.. print(os.path.pardir) # os.path.abspath(__file__) :绝对路径 # 获取绝对路径(目录加当前文件名) print(os.path.abspath(__file__)) # os.path.split(os.getcwd()) 用于分开一个目录名称中的目录部分和文件名称部分。 # 获取绝对目录(没有文件名) print(os.getcwd()); print(os.path.split(os.path.abspath(__file__))[0]) # 目录 print(os.path.dirname(os.path.abspath(__file__)))# 等价于上一句 # 拼接文件目录和文件名 print(os.path.join(os.path.dirname(os.path.abspath(__file__)), os.path.pardir) ) # 获取父目录 # 当前目录的路径名称,即父目录(os.path.dirname():显示当前路径,不会显示当前文件名) print(os.path.dirname(os.getcwd())); print(os.path.abspath(os.path.join(os.getcwd(), os.path.pardir)) )
更多关于python标准库sys和OS使用方法请查看下面的相关链接
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)