sys 模块负责与Python 解释器的交互,提供一系列的函数和变量,用于操控Python 的运行时环境。
在Python 解释器下执行一个脚本时,会通过sys.argv 变量向这个脚本传递一个命令行参数列表。其中,第一个元素sys.argv[0]是脚本程序的完整路径或文件名(取决于操作系统)。
例如,编写一个叫作abc.py 的脚本:
import sys
print('脚本名:', sys.argv[0])
在Python 解释器中执行这个脚本:
python abc.py
在Windows 系统上将输出下面的信息:
脚本名:abc
如果执行这个脚本时,新提供了其他的参数,那么从第二个元素sys.argv [1]起就是这些新提供的参数。例如,abc.py 脚本内容如下:
import sys
print('脚本名:', sys.argv[0])
print('Hello ', sys.argv[1])
在Python 解释器中执行如下脚本:
python abc.py wang
程序代码中sys.argv[0]是模块名abc,而sys.argv[1]是参数wang,在Windows 系统上将输出下面的信息:
脚本名:abc
Hello wang
当import 一个模块时,Python 会在一些位置查找是否存在相应名字的模块,首先查找是否在内在(built-in)模块中,如未找到就在当前目录查找,如仍未找到,就在sys.path 变量指定的目录里查找。
sys.path 是一个字符串列表,用于指定模块的搜索路径,包括环境变量PYTHONPATH 里的目录和安装目标的默认值。Python 解释器在导入模块时,会在这些路径中查找相应的模块。
例如,可输出sys.path 中的目录内容:
import sys
print(sys.path)
输出: