一、系统模块 sys
与系统相关的信息
sys —— System-specific parameters and functions(系统特定的参数和功能)
详见官方文档(英文):https://docs.python.org/3/library/sys.html
二、sys模块的变量
变量 | 描述 |
---|---|
sys.path | 模块搜索路径 path[0] 是当前脚本程序的路径名,否则为 '' |
sys.modules | 已加载模块的字典 |
sys.version | 版本信息字符串 |
sys.version_info | 版本信息的命名元组 |
sys.platform | 操作系统平台名称信息 |
sys.argv | 命令行参数 argv[0] 代表当前脚本程序路径名 |
sys.copyright | 获得Python版权相关的信息 |
sys.builtin_module_names | 获得Python内建模块的名称(字符串元组) |
标准输入输出时会用到 | |
sys.stdin | 标准输入文件对象,多用于input() |
sys.stdout | 标准输出文件对象,多用于print() |
sys.stderr | 标准错误输出文件对象, 用于输出错误信息 |
三、sys模块的方法
函数名 | 描述 |
---|---|
sys.exit([arg]) | 退出程序,正常退出时sys.exit(0) |
sys.getrecursionlimit() | |
sys.getrecursionlimit() | 得到递归嵌套层次限制(栈的深度) |
sys.setrecursionlimit(n) | 得到和修改递归嵌套层次限制(栈的深度) |
四、示例
#!/usr/bin/python3
import sys
# sys.argv是一个字符串序列
print("参数的个数是:",len(sys.argv))
print(sys.argv)
for x in sys.argv:
print("参数是:",x)
第一题:
写一个程序myadd.py,然后执行此程序
如果执行如下命令:
$ ./myadd.py
用法:./myadd 数字 运算符 数字
$ ./myadd.py 5 加 2
结果是:7
$ ./myadd.py 5 乘 2
结果是:10
#!/usr/bin/python3
# myadd.py
# chmod +x myadd.py
import sys
if len(sys.argv) < 4:
print("用法:./myadd 数字 运算符 数字")
sys.exit(0) #退出程序
if sys.argv[2] =="加":
print(float(sys.argv[1]) + float(sys.argv[3]))
if sys.argv[2] =="乘":
print(float(sys.argv[1]) * float(sys.argv[3]))