python:系统工具的使用

本文深入探讨了Python中的sys模块和os模块,详细介绍了sys模块如何提供系统级功能,如获取Python运行环境信息、处理异常和命令行参数。同时,文章也全面解析了os模块的功能,包括环境变量管理、目录操作、shell命令执行和路径处理。

第一部分:Python

一.系统工具----sys模块

1.提供一组功能映射python运行时的操作系统,平台与版本:
sys.platform----系统版本
sys.version----python版本
sys.path----环境变量
sys.modules----已经载入的模块

2.观察异常细节:
sys.exc_info()----获取最后一次异常细节,返回元组(错误类别,错误信息,traceback信息)
traceback.print_tb(sys.exc_info()[2])----需要导入traceback模块,利用其print_tb函数,追踪到上一次错误的位置,也就是sys.exc_info()返回的元组的第[2]元素

import traceback
try:
    raise KeyError('键值错误')
except KeyError as e:
    print(sys.exc_info())
    traceback.print_tb(sys.exc_info()[2])
    
(<class 'KeyError'>, KeyError('键值错误'), <traceback object at 0x0000020C983B05C8>)
  File "<ipython-input-13-f4c3afc5b325>", line 2, in <module>
    raise KeyError('键值错误')

3.命令行参数:sys.argv可以捕获命令行参数,返回一个列表。

import sys

def add(a,b):
    return a + b

# sys.argv[0]为文件目录
print(sys.argv)
if len(sys.argv) < 3:
    print('参数不够。')
else:
    a = int(sys.argv[1])
    b = int(sys.argv[2])
    print(add(a,b))

命令提示符下运行结果:在这里插入图片描述
4.标准流:
sys.stdin----标准输入流,默认等同于input()
sys.stdout----标准输出流,默认等同于print()
sys.stderr----标准错误流

注:std----standard,sys模块在实际编程中,命令行参数运用较多。

二.os模块

1.管理工具:
os.environ----environment,环境变量
os.getcwd()----get current word directory获得当前工作目录
os.listdir()----列举目录下信息列表,类似于ls
os.chdir()----change directory改变目录,类似于cd
os.getpid()----获取当前进程ID
os.getppid()----获取当前父进程ID

2.运行shell命令:
windows下的一些指令:dir----查看文件信息,cd----改变目录,cd…----返回上一级目录。
os.system()----python脚本中运行shell命令
os.popen()----python脚本中运行shell命令并连接输入输出流

os.system('dir')

os.popen('dir')
Out[48]: <os._wrap_close at 0x20c983da588>
os.popen('dir').readlines()
Out[49]: 
[' 驱动器 G 中的卷是 软件\n'......
#文件信息省略

注:.system()返回结果可以直接看到信息,而.popen()返回的结果需要用readlines()等方法读出。

3.path工具
os.mkdir(‘目录名’)----make dir,创建目录
os.rmdir(‘目录名’)----remove dir,删除目录
os.rename(‘旧名’,’新名‘)----改名
os.remove(‘文件名’)----删除文件

4.路径模块.path:
os.path.isdir(path)----是否目录
os.path.isfile(path)----是否文件
os.path.exists(path)----是否存在
os.path.split(path)----拆分路径
os.path.splitext(path)----拆分路径扩展名
os.path.join(路径,文件名)----连接路径
os.path.normpath(path)----标准化路径(取决于操作系统)
os.path.abspath(path)----绝对化路径

import os
os.path.split(r'c:\data\temp\data.txt')
Out[51]: ('c:\\data\\temp', 'data.txt')
os.path.splitext(r'c:\data\temp\data.txt')
Out[52]: ('c:\\data\\temp\\data', '.txt')
os.path.join(r'c:\temp','product.csv')
Out[53]: 'c:\\temp\\product.csv'
name = r'c:\data\temp\data.txt'
os.path.dirname(name)
Out[56]: 'c:\\data\\temp'
os.path.basename(name)
Out[57]: 'data.txt'
# dirname----目录名称,basename----根基文件名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值