• Python 中的sys、os、os.path模块总结


    sys:系统

    • 命令行参数List,第一个元素是程序本身路径:sys.argv
    • 退出程序,正常退出时exit(0):sys.exit(n)
    • 获取Python解释程序的版本信息:sys.version
    • 最大int值:sys.maxsize | sys.maxint
    • 环境变量:sys.path
    • 操作系统平台名称:sys.platform

    os:操作系统

    生成单级目录:os.mkdir(‘dirname’)
    生成多层目录:os.makedirs(‘dirname1/…/dirnamen2’)
    重命名:os.rename(“oldname”,“newname”)
    工作目录:os.getcwd()
    删除单层空目录:os.rmdir(‘dirname’)
    移除多层空目录:os.removedirs(‘dirname1/…/dirnamen’)
    列举目录下所有资源:os.listdir(‘dirname’)
    路径分隔符:os.sep
    行终止符:os.linesep
    文件分隔符:os.pathsep
    操作系统名:os.name
    操作系统环境变量:os.environ
    执行shell脚本:os.system()

    • 生成单级目录:os.mkdir(path[, mode])

      以数字mode的mode创建一个名为path的文件夹.默认的 mode 是 0777 (八进制)。path-- 要创建的目录 ;mode – 要为目录设置的权限数字模式

    只存在文件路径'E:StudySpaceCode'
    import os
    os.mkdir(r'E:StudySpaceCodeaaaa')
    print('创建成功')
    结果:文件夹创建成功
    
    只存在文件路径'E:StudySpaceCode'
    import os
    os.mkdir(r'E:StudySpaceCodeaaabb')
    print('创建成功')
    结果:报错[WinError 3] 系统找不到指定的路径。
    
    os.mkdir('a/b/c')  
    在上面路径中a,b文件夹必须存在,c文件夹必须不存在
    
    • 生成多层目录:os.makedirs(‘dirname1/…/dirnamen2’)

      递归文件夹创建函数。像mkdir(), 但创建的所有intermediate-level文件夹需要包含子文件夹。

    import os
    os.makedirs('a/b/c')
    在上面路径中如果a,b,c文件夹全存在,程序会则报错。a和b文件夹存在与否都可以创建文件夹'a/b/c'
    
    • 重命名:os.rename(“oldname”,“newname”)

      重命名文件或目录,从 src 到 dst

    import os
    os.rename("111","222")  # 重名名
    
    • 工作目录:os.getcwd()

      返回当前工作目录。

    import os
    print(os.getcwd())  # 当前工作目录
    
    • 删除单层空目录:os.rmdir(‘dirname’)

      删除path指定的空目录,如果目录非空,则抛出一个OSError异常。

    import os
    os.rmdir(r'D:fullstackpart1bb')  # 删除文件夹
    
    • 移除多层空目录:os.removedirs(‘dirname1/…/dirnamen’)

      递归删除目录。

    import os
    os.removedirs('a/b/c')  
    
    c空,删c,b也变成空,也可以被删除,以此类推,如果b不为空,删除c后就停止操作
    
    • 列举目录下所有资源:os.listdir(‘dirname’)

      返回path指定的文件夹包含的文件或文件夹的名字的列表。

    import os
    res = os.listdir(r'C:')
    print(res)
    '''
    输出:
    ['$GetCurrent', '$RECYCLE.BIN', 'AppData', 'Program Files',  'Users', 'Windows', ]
    '''
    
    • 路径分隔符:os.sep
    import os
    print(os.sep)  
    输出: 
    
    • 行终止符:os.linesep
    import os
    print(ascii(os.linesep))  
    输出: 
    
    
    • 文件分隔符:os.pathsep
    import os
    print(os.pathsep)  
    输出: ;
    
    • 操作系统名:os.name

    • 操作系统环境变量:os.environ

    • 执行shell脚本:os.system()

    import os
    print(os.system('dir'))
    
    相当于在cmd的当前文件夹下执行“dir

    os.path:系统路径操作

    执行文件的当前路径:__ file __
    返回path规范化的绝对路径:os.path.abspath(path)
    将path分割成目录和文件名二元组返回:os.path.split(path)
    上一级目录:os.path.dirname(path)
    最后一级名称:os.path.basename(path)
    指定路径是否存在:os.path.exists(path)
    是否是绝对路径:os.path.isabs(path)
    是否是文件:os.path.isfile(path)
    是否是路径:os.path.isdir(path)
    路径拼接:os.path.join(path1[, path2[, …]])
    最后存取时间:os.path.getatime(path)
    最后修改时间:os.path.getmtime(path)
    目标大小:os.path.getsize(path)

    import os.path

    • 执行文件的当前路径:__ file __
    先将项目的根目录设置为常量 -> 项目中的所有目录与文件都应该参照次目录进行导包
    BASE_PATH = os.path.dirname(os_path.dirname(__file__))
    print(BASE_PATH)
    sys.path.append(BASE_PATH)
    # 重点:将项目目录添加至环境变量
    
    • 返回path规范化的绝对路径:os.path.abspath(path)
    print(os.path.abspath(r'a'))
    
    • 将path分割成目录和文件名二元组返回:os.path.split(path)
    # ('D:\fullstack\part1', '系统模块.py')
    print(os.path.split(r'D:fullstackpart1系统模块.py'))
    # ('D:/fullstack/part1', '系统模块.py')
    print(os.path.split(r'D:/fullstack/part1/系统模块.py'))
    # ('D:/fullstack/part1', '系统模块.py')
    print(os.path.split(r'D:fullstackpart1'))
    # ('D:\fullstack/part1', '')
    print(os.path.split(r'D:fullstackpart1\'))
    
    • 上一级目录:os.path.dirname(path)
    print(os.path.dirname(os_path.dirname(r'D:fullstackpart1a')))
    
    • 最后一级名称:os.path.basename(path)
    print(os.path.basename(r'D:fullstackpart1a'))
    
    • 指定路径是否存在:os.path.exists(path)
    print(os.path.exists(r'D:fullstackpart1'))
    print(os.path.exists(r'D:fullstackpart1时间模块.py'))
    
    • 是否是绝对路径:os.path.isabs(path)
    print(os.path.isabs(r'a'))
    print(os.path.isabs(r'D:fullstackpart1a'))
    
    • 是否是文件:os.path.isfile(path)
    print(os.path.isfile(r'D:fullstackpart1'))
    print(os.path.isfile(r'D:fullstackpart1时间模块.py'))
    
    • 是否是路径:os.path.isdir(path)
    print(os.path.isdir(r'D:fullstackpart1'))
    print(os.path.isdir(r'D:fullstackpart1时间模块.py'))
    
    • 路径拼接:os.path.join(path1[, path2[, …]])
    print(os.path.join(r'D:fullstackpart1', 'a', 'b'))
    
    print(os.path.normcase('c:/windows\system32\'))
    # 通过normcase来添加项目根目录到环境变量
    BASE_PATH1 = os.path.normpath(os.path.join(__file__, '..', '..'))
    print(BASE_PATH1)
    sys.path.append(BASE_PATH1)
    
    • 最后存取时间:os.path.getatime(path)
    print(os.path.getamtime(r'D:fullstackpart1时间模块.py'))
    
    • 最后修改时间:os.path.getmtime(path)
    print(os.path.getmtime(r'D:fullstackpart1时间模块.py'))
    
    • 目标大小:os.path.getsize(path)
    print(os.path.getsize(r'D:fullstackpart1时间模块.py'))
    
    重点:
    BASE_PATH = os.path.dirname(os.path.dirname(__file__))
    sys.path.append(BASE_PATH)
    BASE_PATH1 = os.path.normpath(os.path.join(__file__, '..', '..'))
    sys.path.append(BASE_PATH1)
    
  • 相关阅读:
    微信开发者工具打开一直处于初始化应用通信能力界面的解决办法
    vuex学习笔记
    生产环境下的log 在正式环境下隐藏log
    el-table 表头添加下拉筛选框 附带输入过滤
    element-ui table type=“expand“ 无内容时 不可展开
    窗口移到了电脑桌面边缘外拖不回来解决办法
    yarn的基础语法:yarn安装完vue cli3后提示不是内部命令
    nodejs npm错误Error:UNKNOWN:unknown error,mkdir 'D:Develop odejs ode_global'at Error(可行)
    vue-cli 更新遇到的问题,卸载不掉旧版本2.9.6(可行)
    vue基础——命名路由
  • 原文地址:https://www.cnblogs.com/linwow/p/10693782.html
Copyright © 2020-2023  润新知