一、sys模块
1.作用:负责程序与python解释器的交互,提供函数和变量用于操控python的运行时环境
2.常用方法1:sys.argv 类型为list,命令行参数列表,第一个元素是脚本名称或路径
import sys for row in sys.argv: print(row)
3.常用方法2:sys.path 类型为list,模块的搜索路径
for row in sys.path: print(row)
1)它使用PYTHONPATH环境变量初始化
2)第一个元素是当前目录,意思是每次会首先搜索当前目录下的模块
3)用户在程序中可以自己修改sys.path,设置自己模块的搜索路径
4.常用方法3:sys.exit(n):退出程序,n为0代表正常退出,不为0 代表异常退出,在shell中使用$?获取推出值(echo $?)
二、os模块:负责程序与操作系统交互,提供访问操作系统底层的接口
1.os.environ 字典类型,读取系统环境变量
2.os.remove(path) 删除文件
3.os.rename(src,dst) 重命名文件或目录,可实现文件移动
4.os.mkdir(dir) 创建目录
5.os.rmdir(dir) 删除目录,目录必须为空
6.os.listdir(path) 返回列表,列出目录下的文件和目录
7.os.path.basename(path) 提取路径参数中的文件名
8.os.path.dirname(path) 提取路径参数中的目录名
9.os.path.split(path) 拆分path(目录名,文件名)
10.os.path.splitext(path) 拆分path(文件名,后缀名)
11.os.path.exists(path) 判断指定的文件或目录是否存在
12.os.path.isdir(path) 判断path参数是否的目录
13.os.path.isfile(psth) 判断path参数是否是普通文件
三、练习
""" 按后缀名清理文件 """ import sys import os def clearup(dirpath): """ 目录按照后缀名清理 1.使用字典按后缀名搜集对应的文件 2.如果后缀名的目录不存在,则创建 3.移动文件到目标目录 :param dirpath: :return: """ ext_fnames = {} for fname in os.listdir(dirpath): fdir,fileext = os.path.splitext(fname) fileext = fileext[1:] #去除.jpg中的. if fileext not in ext_fnames: ext_fnames[fileext] = [] ext_fnames[fileext].append(fname) for ext,fnames in ext_fnames.items(): ext_dir = "%s/%s"%(dirpath,ext) if not os.path.isdir(ext_dir): os.mkdir(ext_dir) for fname in fnames: old_fpath = "%s/%s"%(dirpath,fname) new_fpath = "%s/%s"%(ext_dir,fname) os.rename(old_fpath,new_fpath) if __name__ == "__main__": if len(sys.argv) != 2: raise Exception("please give the clerup dir path") dirpath = sys.argv[1] if not os.path.isdir(dirpath): raise Exception("%s is not a dir"%dirpath) clearup(dirpath) print("success")