2015-10-13 130 views
34

我想調試一個腳本,它將命令行參數作爲輸入。參數是同一目錄中的文本文件。腳本從sys.argv列表中獲取文件名。我的問題是我無法用pycharm中的參數啓動腳本。Pycharm和sys.argv參數

我試圖在「運行」輸入參數到「腳本參數」字段>「編輯配置」菜單,像這樣:

-s'file1.txt', -s'file2.txt' 

但沒有奏效。如何用參數啓動我的腳本?

P.S.我在Ubuntu

回答

42

在PyCharm的參數在Script Parameters像你一樣加入,但它們是雙引號括起來""並沒有指定像-s的解釋標誌。這些標誌在Interpreter options框中指定。

腳本參數框的內容:

"file1.txt" "file2.txt" 

Interpeter標誌:

-s 

或者,視覺:

enter image description here

然後,用一個簡單的測試文件,以評估:

if __name__ == "__main__": 
    import sys 
    print(sys.argv) 

我們得到了我們所提供的參數(sys.argv[0]拿着當然腳本名稱):

['/Path/to/current/folder/test.py', 'file1.txt', 'file2.txt'] 
+0

感謝它的工作。另外事實證明,我應該使用「」引號而不是「'。 – YKY

+0

是的,我的不好,讓我在答案中詳細說明進一步的完整性。 –

+2

這很有幫助;但爲了澄清,我的python腳本需要兩個文件名作爲參數,一個用於-r和一個用於-s(或兩者兼得或者不兼容)。所以我的腳本參數被指定爲沒有解釋器選項的[-p「prof_samples.txt」-r「resp_samples.txt」]。 – hangzhouharry

7

除了吉姆的回答(對不起,沒有足夠的代表點作出評論),只是想點在PyCharm中指定的參數是而不是有特殊字符轉義,不像你在命令行上做的那樣。所以,而在命令行上你會怎麼做:

python mediadb.py /media/paul/New\ Volume/Users/paul/Documents/spinmaster/\*.png 

的PyCharm參數是:

"/media/paul/New Volume/Users/paul/Documents/spinmaster/*.png" 
16

爲他人着想誰想知道如何得到這個窗口。方法如下:

您可以通過點擊Select Run/Debug Configurations(位於enter image description here的左側)並轉至Edit Configurations來訪問此頁面。爲清晰起見,提供了一個 gif。

enter image description here

2

第一個參數是要運行的腳本的名稱。從第二個參數開始,它是您想要從命令行傳遞的參數。下面是一個測試腳本:

from sys import argv 

script, first, second = argv 
print "Script is ",script 
print "first is ",first 
print "second is ",second 

這裏是如何傳遞的輸入參數: 「路徑腳本」,「第一個參數」,「第二個參數」

比方說,該路徑你的腳本是/home/my_folder/test.py,輸出將是這樣的:

Script is /home/my_folder/test.py 
first is First Parameter 
second is Second Parameter 

希望這有助於爲我花了一段時間來弄清楚輸入參數用逗號分隔。

1

請注意,由於某些未知原因,無法在PyCharm Edu版本中添加命令行參數。它只能在Professional和Community版本中完成。