Python中的os模块与sys模块

os 与 sys 介绍

os 与 sys 的官方解释

  • os: This module provides a portable way of using operating system dependent functionality.
  • sys: This module provides access to some variables used or maintained by the interpreter and to functions that interact strongly with the interpreter.

os 与 sys 间没有联系

  • os 只是一个标准的 python 库,用来向程序提供运行环境,特别是在文件系统、新进程创建、获取操作系统本身信息中,并屏蔽了各种不同操作系统的细节差异
  • sys 则是 python 程序用来请求解释器行为的接口,比如 profiling 类(stats、getsizeof)、调试类(trace、frames、except)、运行时环境类(path、stderr、stdout)、解释器本身(version),inspect 某种程度上可以看成是 sys 提供功能上的封装
  • 总之,一个 python 程序可以不用 os,但无法避免 sys 的介入(尽管可能不 import 它)

总结

  • os 模块负责程序操作系统间的交互,提供了访问操作系统底层的接口
  • sys 模块负责程序python 解释器间的交互,提供了一系列函数和变量,用于操控 python 运行时的环境

常用方法

os 常用方法

import os

# 删除文件
os.remove()

# 重命名文件
os.rename()

# 生成指定目录树下的所有文件名
os.walk()

# 更改目录
os.chdir()

# 创建目录、创建多级目录
os.mkdir()
os.makedirs()

# 删除目录、删除多级目录
os.rmdir()
os.removedirs()

# 列出指定目录的文件
os.listdir()

# 获取当前工作目录
os.getcwd()

# 修改目录权限
os.chmod()

# 去掉目录路径,返回文件名
os.path.basename()

# 去掉文件名,返回目录路径
os.path.dirname()

# 将分离的各部分组合成一个路径名
os.path.join()

# 返回(dirname(), basename())元组
os.path.split()

# 返回(filename, extension)元组
os.path.splitext()

# 分别返回文件最近访问时间、创建时间、修改时间
os.path.getatime()
os.path.getctime()
os.path.getmtime()

# 返回文件大小
os.path.getsize()

# 判断是否存在
os.path.exists()

# 判断是否为绝对路径
os.path.isabs()

# 判断是否为目录
os.path.isdir()

# 判断是否为文件
os.path.isfile()

sys 常用方法

import sys

# 命令行参数list,第一个元素是程序本身路径
sys.argv

# 返回所有已经导入的模块列表
sys.modules.keys()

# 获取当前正在处理的异常类,exc_type,exc_value,exc_traceback当前处理的异常详细信息
sys.exc_info()

# 退出程序,正常退出时exit(0)
sys.exit(n)

# 获取python解释程序的16进制格式版本值
sys.hexversion

# 获取python解释程序的版本信息
sys.version

# 获取最大的unicode值
sys.maxunicode

# 返回系统导入的模块字段,key是模块名,value是模块
sys.modules

# 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.path

# 返回操作系统平台名称
sys.platform

# 标准输出
sys.stdout

# 标准输入
sys.stdin

# 标准错误输出
sys.stderr

# 用来清除当前线程所出现的当前的或最近的错误信息
sys.exc_clear()

# 返回平台独立的python文件安装的位置
sys.exec_prefix

# 本地字节规则的指示器,big-endian平台的值是 'big',little-endian平台的值是 'little'
sys.byteorder

# 记录python版权相关内容
sys.copyright

# 解释器的API版本号(可用于检查解释器版本是否符合要求)
sys.api_version

其他方法

向环境变量中添加路径

  • 当导入一个模块时,默认会搜索当前目录、已安装的内置模块和第三方模块,搜索路径存放在 sys 模块的 path
# 查看模块搜索路径
import sys
sys.path
  • 此时 sys.path 返回的是一个列表,该列表下的路径已经添加到系统的环境变量
  • 如果模块不在当前程序所在目录下,通过列表的 append() 方法进行添加
sys.path.append(引用模块的地址)

使用 os 模块动态获取目录或文件路径

  • 代码除了能在本地运行,也需要在不修改代码的前提下在其他的环境下运行,这样才能达到高复用性和低维护成本
  • 在接口测试的模块调用中,会定义很多相关路径,而这些路径必须使用相对路径且能够动态获取才能够满足框架的基本要求,因此可以单独创建一个 constants 模块处理该问题,来动态获取当前文件的根路径
import os

# 获取项目根目录
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

# 设置Configs目录路径
CONFIG_DIR = os.path.join(BASE_DIR, 'Configs')

# 设置配置文件路径
CONFIG_FILE_PATH = os.path.join(CONFIG_DIR, 'init.ini')

# 设置TestDatas目录路径
DATAS_DIR = os.path.join(BASE_DIR, 'TestDatas')

# 设置TestDatas文件路径
DATA_FILE_PATH = os.path.join(DATAS_DIR, 'TestDatas.txt')

# 设置Logs目录路径
LOGS_DIR = os.path.join(BASE_DIR, 'Logs')

# 设置Reports目录路径
REPORTS_DIR = os.path.join(BASE_DIR, 'Reports')

返回文件路径

  • 返回文件所在目录
    注意要输入文件的全路径
os.path.dirname(文件路径)
  • 返回文件绝对路径
os.path.abspath(文件名)
  • 返回当前文件的目录的上一级目录
os.path.dirname(os.path.dirname(__file__))
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值