关于 sys.args 的这段代码是什么意思?

What does this code concerning sys.args mean?

下面这段代码是什么意思?我不明白sys.argv的概念。我听说它与命令行提示有关,但我的词汇量不足以理解它。输出也很奇怪。我不明白列表是如何提取的,元素是如何进入的,甚至它们来自哪里以及它们的含义。这真的让我感到困惑,所以帮助理解它会非常感激。请使用更好的术语,以便我理解。

import sys

print 'Number of arguments:', len(sys.argv), 'arguments.'
print 'Argument List:', str(sys.argv)

sys.argvstring 的列表,其中包含执行 Python 脚本时的参数(即 >> python main.py arg1 arg2)。

请注意,第一个参数始终是命令的名称。第一个 "actual" 参数位于 sys.argv[1] 中(假设至少传入了一个参数)。

大多数程序接受参数来改变它们的行为方式。例如

grep some_string myfile.ext

此命令(在 unix 系统上)在 myfile.ext 中查找 'some_string' 并将匹配行打印到控制台。

所以问题是 grep(正在 运行 的程序)如何知道要查找的内容或要查找的文件?答案很明显——它通过命令行传递这些参数。您也可以将参数从 commandlint 传递到您的 python 程序:

python my_python_file.py argument1 argument2

在这种情况下,如果 my_python_file.py 包含您问题中的内容,则 sys.argv 将包含 ['my_python_file.py', 'argument1', 'argument2']

因此您可以查看 sys.argv 并在其中查看 'argument1' 并让您的代码相应地执行某些操作。请注意,手动解析 sys.argv 是相当罕见的,除非它是 真正 的简单情况。通常,您会使用 argparse 之类的东西来为您解析参数,并以更易于管理的格式返回解析后的信息。