2016-03-10 32 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給出的答案 –