2011-12-30 101 views
1

我是python的新手(如果這是一個新問題,也非常抱歉)但我不知道命令行參數是什麼。當調用sys.argv時,參數究竟是什麼?任何幫助理解這將是一個偉大的服務。什麼是命令行參數?

+3

我不知道你想問什麼。參數是通過命令行傳遞給程序的東西,例如:'python myfile.py這些是參數'。你問他們存放在哪裏,或者如何,或者什麼? – Dan 2011-12-30 17:09:04

+2

這不是Python的問題。這是適用於所有**編程語言的Linux(或Windows)問題。請爲您的操作系統添加標籤,以便我們可以鏈接到解釋命令行的操作系統文檔。 – 2011-12-30 17:12:52

+1

'argv'通常代表「參數值」。 (還有一個用於參數計數的'argc'。)你如何調用'sys.argv'? – Rudie 2011-12-30 17:16:59

回答

7

嘗試運行此程序:

import sys 
print(sys.argv) 

你應該會看到類似這樣的結果:

% test.py 
['/home/unutbu/pybin/test.py'] 
% test.py foo 
['/home/unutbu/pybin/test.py', 'foo'] 
% test.py foo bar 
['/home/unutbu/pybin/test.py', 'foo', 'bar'] 
% python test.py foo 
['test.py', 'foo'] 

所以,你看sys.argv是一個列表。第一項是正在運行的腳本的路徑(或文件名),後跟命令行參數。

+0

@unutbu的另一個很好的答案 – Droogans 2011-12-30 17:19:33

6

給定命令myscript.py arg1 arg2 arg3,參數爲arg1,arg2和arg3。 sys.argv還會在第一個位置包含腳本名稱(即myscript.py)。

Command line arguments並不特定於python。

0

命令行參數是你在命令行命令後鍵入字符串,例如:

python --help 

這裏--help對於python命令的說法,這顯示了有效的命令幫助頁面用於python命令的行參數。

在Python程序,你可以訪問論點sys.argv,所以假設你開始一個python腳本是這樣的:

python myscript.py -x -y 

myscript.py開始,sys.argv[1]將具有值字符串「-x '和sys.argv[2]將具有字符串'-y'的值。你對這些參數的處理由你決定,還有一些模塊可以幫助你輕鬆定義命令行參數,例如argparse

0

命令行參數是您在腳本名稱後鍵入的參數。例如。如果輸入:python test.py arg1,則第一個參數是arg1。例如,jhu.edu

0

參數通常用作告訴程序在運行時應該做什麼的一種方式。

如果我有一個名爲writefile.py的程序,並且我希望用戶告訴它要寫哪個文件,那麼我將使用python writefile.py targetfile.txt運行它。我的樣品writefile.py:

import sys 

file = open(sys.argv[1], 'w') # sys.argv[0] = 'writefile.py' (unutbu's answer) 
file.write('ABCDE') 
file.close 

運行在此之後,我將有一個名爲targetfile.txt與內容「ABCDE」的文件。如果我用python writefile.py abcde.txt來運行它,我會在內容爲「ABCDE」的地方使用abcde.txt。