前言
“不会用sys模块的Python程序员,和不会开车的司机一样令人捉急。”这句话一点没错,因为sys模块可以让你快速做到:
- 解析命令行参数 在运行Python程序时,我们可以在命令行中传递不同的参数,如果不用sys.argv来获取,你将很难处理程序输入。
- 获取Python解释器信息 要获取当前运行环境的信息,如版本号、平台等,只有调用sys.version和sys.platform这样的接口才行。
- 重定向标准输出入误 打印调试信息时,通过sys.stdout你可以轻松改变输出渠道。
- 退出程序并返回状态 用sys.exit()可以不仅退出程序,还能返回状态码,这对部署程序很重要。
- 获取文件系统路径 导入模块需要按sys.path搜索,这关系到代码的组织结构。
一个不谙sys模块的Python开发者就像盲人摸象,你给他再好的代码也不过瞎折腾。要成为真正的Python高手,sys模块必学不可少。 今天就跟随本文一起,深入sys的世界,提升Python实力!你将发现,它比你想象得更强大。
定义
sys模块是最常用的和python解释器交互的模块,sys模块可供访问由解释器interpreter
使用或维护的变量和与解释器进行交互的函数。sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分。
常用模块
sys模块中常用的函数包括:
1. sys.argv
: 获取命令行参数
在执行Python程序时,可以在命令后加入参数,sys.argv可以用来获取命令行参数。 例如有以下Python代码:
import sys
print(sys.argv)
在命令行Terminal中执行:
# test.py 文件为当前需要运行的py文件名
python3 test.py hello world
那么输出的sys.argv为:
['test.py', 'hello', 'world']
可以看出,sys.argv是一个列表,第一个元素是程序名,后面依次是命令行的各个参数。通过遍历sys.argv,可以解析命令行参数。
2. sys.exit()
: 退出当前程序
我们可以使用sys.exit()来退出当前Python程序,并返回退出码。例如:
import sys
print("exiting...")
sys.exit(1)
上面代码执行后会打印出exiting...,然后程序退出,退出码为1。如果不指定退出码,默认就是0。
同时,只要执行到了sys.exit()方法后,在它之后的代码就不会再次执行到了
print("exiting........")
sys.exit(1)
def do_somethings(args):
return args
print(do_somethings(11))
# 执行结果
>>> exiting........
最后的执行结果只会将exiting......打印出来,而后面的do_somethings()函数则不会再去执行
3. sys.version
: 获取Python解释程序的版本信息
如果想获取当前Python解释器的版本信息,可以使用sys.version。例如:
import sys
print(sys.version)
# 输出结果为
>>> 3.11.4 (tags/v3.11.4:d2340ef, Jun 7 2023, 05:45:37) [MSC v.1934 64 bit (AMD64)]
这样我们就可以知道当前Python的确切版本信息。
4. sys.platform
: 返回当前程序所在平台信息
要判断当前程序运行的操作系统平台,可以使用sys.platform。它会返回一个标识当前操作系统平台的字符串,包括:
print(sys.platform)
# 在windows执行,输入结果为
>>> win32
# 在Linux执行,输入结果为
>>> linux
# 在Mac执行,输入结果为
>>> darwin
5. sys.path
: 返回模块搜索路径
import模块时,sys.path用于搜索模块文件。比如要导入单元测试模块unittest,Python解释器会根据sys.path定义的路径去搜索unittest.py文件。
我们可以打印出sys.path,查看Python的模块搜索路径:
import sys
print(sys.path)
# 输出结果为
>>> ['D:\\Test_Tools\\Python_demo_project', 'D:\\Test_Tools\\Python_demo_project', 'D:\\Test_Tools\\pycharm\\PyCharm 2023.1.2\\plugins\\python\\helpers\\pycharm_display', 'D:\\Test_Tools\\Python\\python311.zip', 'D:\\Test_Tools\\Python\\DLLs', 'D:\\Test_Tools\\Python\\Lib', 'D:\\Test_Tools\\Python', 'D:\\Test_Tools\\Python\\Lib\\site-packages', 'D:\\Test_Tools\\pycharm\\PyCharm 2023.1.2\\plugins\\python\\helpers\\pycharm_matplotlib_backend']
6. sys.stdin/stdout/stderr
:准输入/输出/错误文件流
Python中可以通过sys.stdin、sys.stdout和sys.stderr获取标准输入、输出和错误对应的文件对象。我们可以将print输出重定向到stderr:
import sys
print("hello", file=sys.stderr)
# 输入结果会显示为红色的“hello”
这样print就会输出到标准错误而不是标准输出。
以上就是Python sys模块的常用功能介绍。通过sys模块可以方便地与Python运行环境进行交互,对开发与调试都很有帮助。推荐大家在使用Python时要重点掌握sys这个重要模块。
标签:Python,sys,print,模块,Test,Tools From: https://blog.51cto.com/u_16219897/7052772