关于 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.argv
是 string
的列表,其中包含执行 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
之类的东西来为您解析参数,并以更易于管理的格式返回解析后的信息。
下面这段代码是什么意思?我不明白sys.argv的概念。我听说它与命令行提示有关,但我的词汇量不足以理解它。输出也很奇怪。我不明白列表是如何提取的,元素是如何进入的,甚至它们来自哪里以及它们的含义。这真的让我感到困惑,所以帮助理解它会非常感激。请使用更好的术语,以便我理解。
import sys
print 'Number of arguments:', len(sys.argv), 'arguments.'
print 'Argument List:', str(sys.argv)
sys.argv
是 string
的列表,其中包含执行 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
之类的东西来为您解析参数,并以更易于管理的格式返回解析后的信息。