2016-03-10 18 views
-2

下面的代码块是什么意思?我不明白sys.argv的概念。我听说它与命令行提示有关,但我的词汇量不足以理解这一点。另外输出很奇怪。我不明白一个清单是如何被撤销的,也不知道这些要素是如何进入的,甚至是来自哪里以及它们的意思。这真让我很困惑,所以帮助理解它会非常感谢。请使用更合适的术语,以便我能理解它。关于sys.args的代码是什么意思?

import sys 

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

[您是否阅读过文档?](https://docs.python.org/2/library/sys.html) –

回答

3

大多数程序都接受改变其行为方式的参数。例如

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的情况并不常见。通常情况下,您可以使用类似​​的内容来解析参数,并以更易于管理的格式返回解析的信息。

2

sys.argv是包含参数执行该Python脚本时string秒的列表(即>> python main.py arg1 arg2)。

请注意,第一个参数将始终是命令的名称。第一个“实际”参数位于sys.argv[1](假设至少传入一个参数)。

+0

请解释这些参数。他们是什么?只是文件名和文件类型?这就是它的样子。尽管如此,我认为我不在。 –

+0

查看@mgilson给出的答案 –