Python中的Sys库
Python的Sys库是一个Python标准库,它提供了与Python解释器和它的环境交互的函数和变量。 它还提供了一些有用的方法来操作Python的运行时环境。
Sys库的主要功能如下:
1. 命令行参数
命令行参数是命令行中传递给脚本的参数。python脚本可以通过sys模块来访问这些参数。
import sys
if len(sys.argv) > 1:
print("hello " + sys.argv[1])
上述代码可以接收一个命令行参数,并将其与字符串"hello"连接后打印出来。
没懂?
再讲个例子:
假设我们在命令行中执行 python test.py alice 18
命令来运行 Python 脚本,我们需要在脚本中获取命令行中的参数 alice
和 18
,然后将它们打印出来。
代码如下:
import sys
if __name__ == '__main__':
if len(sys.argv) != 3:
print("Usage: python test.py <name> <age>")
sys.exit(1)
name = sys.argv[1]
age = sys.argv[2]
print("Hello, %s! You are %s years old." % (name, age))
在上面的例子中,我们首先判断命令行中传递的参数个数是否等于 3,如果不是则输出提示信息并终止脚本。接下来,我们通过 sys.argv
来获取命令行中传递的参数,sys.argv
是一个列表,其中第一个元素是脚本名,后面的元素就是命令行中传递的参数。我们将获取到的参数存储在 name
和 age
变量中,然后在打印输出的时候使用了 %s
占位符来格式化字符串,这样打印出来的字符串就包含了命令行传递的参数了。
执行该脚本,输出结果如下:
Hello, alice! You are 18 years old.
2. stdin、stdout与stderr
Sys库还提供了三个流对象:stdin、stdout和stderr,这些流对象对于标准输入、标准输出和标准错误很有用。下面的代码展示了如何使用它们:
import sys
sys.stdout.write("hello world\n") # 输出到标准输出流
sys.stderr.write("error occurred\n") # 输出到标准错误流
data = sys.stdin.readline() # 从标准输入流中读取一行数据
3. 异常处理
处理异常是程序设计中必不可少的一部分。sys模块提供了sys.exc_info()函数,该函数可用于获取当前异常的相关信息。下面展示了如何使用该函数:
import sys
try:
x = 1 / 0
except:
type, value, traceback = sys.exc_info()
print("Error type: ", type)
print("Error message: ", value)
输出:
Error type: <class 'ZeroDivisionError'>
Error message: division by zero
4. 版本信息
Sys库中的version变量包含当前Python解释器的版本信息。它也包含有关Python解释器的字符串,如发布日期和版权信息等。
下面的代码展示了如何获取Python版本信息:
import sys
print("Python version")
print(sys.version)
print("Version info.")
print(sys.version_info)
以上就是Sys库的几种主要功能啦!