本文链接: https://blog.csdn.net/xietansheng/article/details/115557655
1. os — 操作系统接口
Python 官网介绍: os — Miscellaneous operating system interfaces
os
模块 系统/进程参数 的部分函数和属性:
os.ctermid() # 返回与进程控制终端对应的文件名
os.environ # 保存了系统环境变量的 mapping 对象(类似字典)
os.getenv(key, default=None) # 返回环境变量 key 的值
os.putenv(key, value) # 设置环境变量(当前进程和子进程有效)
os.unsetenv(key) # 删除环境变量(当前进程和子进程有效)
os.get_exec_path(env=None) # 返回将用于搜索可执行文件的目录列表(PATH 变量中的路径)
os.getpid() # 返回当前进程ID
os.getppid() # 返回父进程ID
os.getgid() # 返回当前进程的实际 组ID
os.getuid() # 返回当前进程的真实 用户ID
os.getlogin() # 返回通过控制终端进程进行登录的用户名
os.name # 操作系统模块的名称, 例如: 'posix', 'nt', 'java'
# 更详细的操作系统信息参考: sys.platform 和 os.uname()
os.uname() # (较新的 Unix 系统才有效) 返回当前操作系统的识别信息,
# 返回对象有 5 个人属性:
# sysname: 操作系统名称
# nodename: 机器再网络上的名称
# release: 操作系统发行信息
# version: 操作系统版本
# machine: 硬件标识
os
模块执行 shell 命令:
# 在子 shell 中执行命令(字符串)。该函数是调用标准 C 函数 system() 来实现的,
# 因此限制条件与该函数相同。对 sys.stdin 等的更改不会反映在执行命令的环境中。
# command 产生的任何输出将被发送到解释器标准输出流。
# 返回一个 int 类型的 code,一般返回 0 表示执行成功。
os.system(command)
# 打开一个管道执行 cmd 命令, 返回值是连接到管道的 文件对象。
# 只能和管道单向通讯, 返回值只能是 写入 或 读取 对象。
# mode 为 'r', 表示返回的的是 读取对象, 可以对管道 read()、 readlines()
# mode 为 'w', 表示返回的的是 写入对象, 可以对管道 write()、writelines()
# 返回的文件对象只能读写字符串, 不能是字节类型。
os.popen(cmd, mode='r', buffering=-1)
os
模块 文件处理 的部分函数和属性:
os.getcwd() # 获取当前工作目录
os.chdir(path) # 改变当前工作目录
os.chmod(path, mode, follow_symlinks=True) # 修改路径的模式和权限
os.chown(path, uid, gid, follow_symlinks=True) # 修改路径的所有者用户和组
os.mkdir(path, mode=0o777) # 创建文件夹
os.makedirs(name, mode=0o777, exist_ok=False) # 创建多级文件夹
os.removedirs(name) # 删除多级文件夹
os.rmdir(path) # 删除文件夹
os.remove(path) # 删除文件
os.unlink(path) # 删除文件
os.rename(src, dst) # 将文件/目录src重命名为dst
os.renames(old, new) # 递归重命名文件/目录
os.replace(src, dst) # 将文件/目录src重命名为dst
os.stat(path) # 获取文件的状态信息(大小, 时间等)返回 os.stat_result 对象
2. sys — 系统相关的参数和函数
Python 官网介绍: sys — System-specific parameters and functions
sys
模块的部分函数和属性:
sys.argv # 字符串列表, 其中包含了被运行的脚本名称和传递给脚本的命令行参数, argv[0] 为脚本的名称,
# 如果没有脚本被传递给解释器(直接运行解释器), 则 argv[0] 为空字符串。
sys.platform # 操作系统平台标识符, 例如判断是否是linux: sys.platform.startswith("linux")
# 常见的系统对应的值:
# ---------------------------------
# System platform value
# ---------------------------------
# AIX "aix"
# Linux "linux"
# Windows "win32"
# Windows/Cygwin "cygwin"
# MacOS "darwin"
# ---------------------------------
# 也可以使用 platform.system() 判断系统名称,
# platform.system() 返回 "Linux", "Darwin", "Java", "Windows"
sys.exit(status=None) # 退出进程, status 为退出的状态, 默认为 0(即正常退出), 也可以是其他[0, 255]的整数;
# status 也可以传递字符串表示错误信息, 如果传递的是字符串, 则退出状态 code 为 1
sys.version # Python 版本信息, 如: "3.7.3 (***) \n[Clang 6.0 (***)]"
sys.version_info # Python 版本信息, 以元祖的形式返回, 如: (major=3, minor=7, micro=3)
sya.path # 由 (zip)文件 或 目录 组成的 列表(list<str>),
# import 导入模块时将从该列表中的文件/目录依次查找模块。
#
# 启动时从 执行的 py 文件所在路径, 环境变量 PYTHONPATH,
# 以及安装 Python 时的默认设置 取值。
#
# 其中 sys.path[0] 为被执行的脚本所在目录。
# 如执行 python3 /aa/bb/cc.py, 则 sys.path[0] 为 "/aa/bb";
# 如果没有脚本被执行(直接运行解释器), 则 sys.path[0] 为空字符串。
#
# 如果需要在程序中增加导入模块的自定义路径, 可以添加到环境变量 PYTHONPATH 中,
# 添加多个路径使用 os.pathsep 分隔, 也可以在程序中动态添加到 sys.path 列表中。
#
# sys.path 的值格式参考:
# ['',
# '${PYTHONPATH}',
# '.../Python/python3x.zip',
# '.../Python/lib/python3.x',
# '.../Python/lib/python3.x/lib-dynload',
# '.../Python/lib/python3.x/site-packages']
sys.modules # 一个字典, 已加载的所有模块的 名称 -> 模块对象 的映射
sys.thread_info # 线程信息, 一个元祖, 如: (name='pthread', lock='mutex+cond', version=None)
# 元祖的值参考:
# -------------------------------------------------------
# 属性 说明
# -------------------------------------------------------
# name 线程实现的名称:
# "nt": Windows 线程
# "pthread": POSIX 线程
# "solaris": Solaris 线程
#
# lock 锁实现的名称:
# "semaphore": 锁使用信号量
# "mutex+cond": 锁使用互斥和条件变量
# None: 未知名称
#
# version 线程库的名称和版本, 字符串类型, 如果未知, 则为 None
# -------------------------------------------------------
sys.stdin # 标准输入 文件对象
sys.stdout # 标准输出 文件对象
sys.stderr # 标准错误输出 文件对象
sys.ps1 # 解释器交互式运行时的主提示, 默认值: ">>> "
sys.ps2 # 解释器交互式运行时的辅助提示, 默认值: "... "
3. platfrom — 获取底层平台的标识数据
Python 官网介绍: platform — Access to underlying platform’s identifying data
platfrom
模块的部分函数和属性:
platform.platform() # 平台信息, 如: "Darwin-18.2.0-x86_64-i386-64bit"
platform.system() # 系统名称, 如: "Linux", "Darwin", "Java", "Windows"
platform.node() # 计算机的网络中名称
platform.release() # 系统的版本, 如: "18.2.0"
platform.version() # 系统的发行版本, 如: "Darwin Kernel Version 18.2.0: ***"
platform.machine() # 机器类型, 如: "arm64"、"AMD64"、"x86_64"、"i386"
platform.processor() # 真实处理器名称, 如: "arm"、"i386"
platform.uname() # 一个元祖, 包含了 6 个属性:
# uname_result(system='Darwin',
# node='******',
# release='21.0.1',
# version='Darwin Kernel ... /RELEASE_ARM64_T6000',
# machine='x86_64',
# processor='arm64')
platform.python_build() # 内部版本号和日期, 一个元祖: (buildno, builddate)
platform.python_compiler() # 编译 Python 的编译器, 如: "Clang 6.0 (clang-600.0.57)"
platform.python_branch() # 标识 Python 实现 SCM 分支的字符串
platform.python_implementation() # Python 实现, 如: "CPython"、"IronPython"、"Jython"、"PyPy"
platform.python_revision() # 标识 Python 实现 SCM 修订版的字符串
platform.python_version() # Python 版本, 格式为: "major.minor.patchlevel", 如: "3.7.3"