• 【python】(十一)python内置库——OS和sys



    1. OS

    1.1 os 概述

    • os: Operating System的缩写
    • os 模块是python系统编程的操作模块,提供了非常丰富的功能去处理文件和目录。
    • 跨平台的差异:不同操作系统,os的个别方法的使用会略有区别。

    1.2 os 使用

    • 导入 os 模块:import os
    • 查看 os 模块使用文档:
      1. help(os)
      2. dir(os)
    #第一步:导入os模块
    import os
    
    # 查看os模块说明文档
    help(os)
    
    # 查看os模块的属性和方法
    print(dir(os))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    1.3 os 常用方法

    1.3.1 系统相关

    • os.name:获取系统名称
    • os.environ:获取系统环境变量信息
    • os.getenv(‘PATH’):获取指定名称的环境变量信息
    • os.system():执行系统指令
    import os
    
    # os.name:获取系统名称 nt代表window,posix代表linux
    print(os.name)
    
    # os.environ:获取系统环境变量信息
    print(os.environ)
    
    # os.getenv('PATH'):获取指定名称的环境变量信息
    print(os.getenv('PATH'))
    
    # os.system():执行系统指令
    os.system('pwd')  # linux系统
    print(os.system('dir'))  # windows系统
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    1.3.2 操作目录

    • os.getcwd():获取当前目录
    • os.chdir():切换目录
    • os.listdir():列出当前目录内容
    • os.mkdir():创建空目录
    • os.makedirs():递归创建多级目录
    • os.rmdir():删除空目录
    • os.rename():重命名目录
    • os.remove():删除文件
    """目录相关"""
    # 获取当前所在目录 get current directory
    print(os.getcwd())
    # 切换目录 change directory
    os.chdir('..')
    # 列出当前目录下的所有文件
    print(os.listdir())
    # 创建空目录
    os.mkdir('new')
    # 递归创建多级空目录
    os.makedirs('a/b/c')
    # 删除空目录
    os.rmdir('new')
    # 重命名目录
    os.rename('a', 'a1')
    # 删除文件
    os.remove('demo.txt')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    1.3.3 操作路径

    path 方法说明
    os.path.abspath(path)返回绝对路径
    os.path.basename(path)返回文件名
    os.path.dirname(path)返回文件路径
    os.path.split(path)分割路径
    os.path.join(path)拼接路径
    os.path.exists(path)判断路径是否存在
    os.path.isdir(path)判断是否是目录
    os.path.isfile(path)判断是否是文件
    os.path.getsize(path)获取文件大小
    # 返回绝对路径
    print(os.path.abspath("./os_demo.py"))
    # 返回文件名
    print(os.path.basename("/Users/xiaofo/coding/pythonProject/course/os_demo.py"))
    # 返回文件路径
    print(os.path.dirname("/Users/xiaofo/coding/pythonProject/course/os_demo.py"))
    # 分割路径
    print(os.path.split("/Users/xiaofo/coding/pythonProject/course/os_demo.py"))
    # 拼接路径
    print(os.path.join("/Users/xiaofo/coding/pythonProject/course", "os_demo.py"))
    # 判断路径是否存在
    print(os.path.exists("/Users/xiaofo/coding/pythonProject/course/os_demo.py"))
    print(os.path.exists("./os_demo.py"))
    # 判断是否是目录
    print(os.path.isdir("../demos"))
    # 判断是否是文件
    print(os.path.isfile("./hello.py"))
    # 获取文件大小
    print(os.path.getsize("/Users/xiaofo/coding/pythonProject/course/os_demo.py"))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    2. sys

    2.1 sys 概述

    • sys模块是 Python 自带的内置模块
    • 是也是魔筷是与Python 解释器交互的桥梁。它提供了访问解释器使用或者维护的变量,以及与解释器进行交互的函数。那通俗来讲,sys模块负责程序与Python解释器的交互,提供了一系列的函数和变量,用户操控Python运行时的环境。

    2.2 sys 使用

    2.2.1 导入 sys 模块

    # 导入sys模块
    import sys
    
    # 查看sys模块帮助文档
    help(sys)
    
    # 查看sys模块的属性和方法
    print(dir(sys))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2.2.2 sys 常用属性

    • sys.version:返回 Python 解释器版本
    • sys.platform:返回操作系统平台名称
    • sys.argv:返回外部向程序传递的参数
    • sys.modules:返回已导入的模块信息
    • sys.path:返回导包的搜索路径列表
    """sys模块常用属性"""
    # 返回Python 解释器版本
    print(sys.version)
    
    # 返回操作系统平台名称
    print(sys.platform)
    #Linux:Linux
    #Windows:WIN32
    #Mac OS:dobbin
    
    # 返回外部向程序传递的参数
    print(sys.argv)
    #argv:传递给python脚本的一个命令行参数列表,返回的是一个列表。列表的第一个元素通常是脚本的名称
    #演示:新建一个python文件,然后在命令行中运行该文件
    # -------------- python文件内容:-------------
    # import sys
    # print("Hello python")
    # print(sys.argv)
    # -------------- 终端中执行命令:--------------
    # python test_sys.py -a -b --C
    #------------------ 打印内容:----------------
    # Hello python
    # ['test_sys.py', '-a', '-b', '--C']
    
    # 返回已导入的模块信息
    print(sys.modules)
    print(sys.modules.keys())
    #以字典的格式返回系统已经加载的所有模块信息,是以字典的格式返回。key:模块名称,value:模块的路径
    
    # 返回导包的搜索路径列表
    print(sys.path)
    
    """
    sys.path为Python提供从中查找第三方扩展模块,也就是说,当我们使用import导入一个模块时,默认的一个情况下,Python解释器会搜索当前的目录、已安装的内置模块和第三方的模块,
    搜索的路径会存放在sys的path属性中。这paht其实已经添加到了系统的环境变量中,当我们需要添加自己的一个搜索目录时,则可以通过改变这个path列表,比如执行列表的一个append方法,
    然后就可以动态地将我们所需要的一个目录添加到对应的导包路径中,这样在Python运行的时候,就能自动地搜索到我们对应的一个模块了。
    """
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    2.2.3 sys 常用方法

    • sys.getdefaultencoding():获取编码方式
      • python3默认编码方式是UTF-8,因此不需要像poython2一样手动修改编码方式
    • sys.exit():运行时退出
    """sys模块常用方法"""
    # 获取系统当前编码.
    print(sys.getdefaultencoding())
    
    # 运行时退出
    sys.exit()
    #exit允许支持接收一个可选的参数,参数类型可是整数,也可以是给出状态的一个任意其他对象,比如字符串等等。
    #接收的参数为整数的话,0被认为是成功终止,其他任何非零值则视为异常终止。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 相关阅读:
    C++ 构造函数实战指南:默认构造、带参数构造、拷贝构造与移动构造
    Hi5 2.0 产品说明书-Ver 1.0
    7. RxJava总结
    日更【系统架构设计师知识总结2】指令系统(结合真题)
    C# SIMD向量加速运算简单例子
    vue3学习心得
    Spring与Redis的整合&&Redis注解式缓存以及Redis雪崩等问题的解决
    通俗易懂的ArcGis开发快速入门
    VScode插件汇总
    JPA中的乐观和悲观锁定
  • 原文地址:https://blog.csdn.net/gjj920318/article/details/126853237