python的标准库模块sys和os

一、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参数是否是普通文件

三、练习

python的标准库模块sys和os_第1张图片

"""
按后缀名清理文件
"""
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")

转载于:https://my.oschina.net/u/3055497/blog/3084380

你可能感兴趣的:(python的标准库模块sys和os)