sys模块
sys模块提供了一些变量和函数。这些变量可能被解释器使用,也可能由解释器提供。这些函数会影响解释器。该模块总是可用的。
sys.argv # 命令行参数List,第一个元素是程序本身路径 |
sys.argv
其中包含了被传递给Python脚本的命令行参数。 argv[0] 为脚本的名称。如果是通过Python解释器的命令行参数 -c 来执行的, argv[0] 会被设置成字符串 ‘-c’ 。如果没有脚本名被传递给Python解释器, argv[0] 为空字符串。
import webbrowser |
sys.exit([arg])
- 从Python中退出。实现方式是抛出一个
SystemExit异常。异常抛出后try声明的finally分支语句的清除动作将被出发。此动作有可能打断更外层的退出尝试。 - 可选参数 arg 可以是表示退出状态的整数(默认为 0),也可以是其他类型的对象。如果它是整数,则 shell 等将 0 视为“成功终止”,非零值视为“异常终止”。大多数系统要求该值的范围是 0–127,否则会产生不确定的结果。某些系统为退出代码约定了特定的含义,但通常尚不完善;Unix 程序通常用 2 表示命令行语法错误,用 1 表示所有其他类型的错误。传入其他类型的对象,如果传入 None 等同于传入 0,如果传入其他对象则将其打印至 stderr,且退出代码为 1。特别地,
sys.exit("some error message")可以在发生错误时快速退出程序。 - 由于 exit() 最终“只是”抛出一个异常,因此当从主线程调用时,只会从进程退出;而异常不会因此被打断。
在 3.6 版更改: 在 Python 解释器捕获 SystemExit 后,如果在清理中发生错误(如清除标准流中的缓冲数据时出错),则退出状态码将变为 120
sys.stdin #(standard input)
sys.stdin.readline()的功能相当于input(), ,其默认输入的格式都是字符串,其区别只在于两点:
- input()括号内可以直接填写提示文字, 如input(“Please input a number:”), 而sys.stdin.readline()不可以;
- sys.stdin.readline()会获取每行数据的最后的换行符’\n’, 而input()忽略。
sys.stdin.readline().strip(‘\n’) 可以删除换行符’\n’,达到和input()同样的效果
sys.stdin.readline() 输入是字符串格式,需要int, float 可以使用map函数转换
sys.stdout #(standard output)
stdout用于print()和expression语句的输出,以及用于input()的提示符;
当我们在Python中打印对象调用print(str)时候,事实上是调用了sys.stdout.write(str + '\n')