2012-01-01 21 views
2

我想傳遞一個整數列表作爲參數到一個python腳本。Python參數,在項目

示例代碼:

items = sys.argv[1] 
for item in items: 
    print item 

我的命令是:

python myscript.py 101,102,103 

的問題是「在」是給我的每一個數字,而不是每個項目由逗號分隔的作爲。

我確定有一個簡單的答案。如何循環使用分隔值而不是單個數字?

非常感謝!

回答

5

通常情況下,命令行參數用空格分開。逗號分隔的數字以單個字符串形式出現,並且for將字符串拆分爲字符。你需要用逗號分割:items.split(',')。一旦你這樣做,你會發現你仍然有字符串,所以你需要將每個字符串轉換爲一個整數。

items = argv[1] 
for item in items.split(','): 
    print int(item) 
+0

可愛。是的,聽起來很像。我有一半希望「Google是你的朋友」的評論或類似內容。我喜歡在這裏回答簡單的問題,所以我想其他人必須:)。謝謝你,新年快樂。 – stackuser10210 2012-01-01 15:22:17

3

我認爲你應該直接使用:

python myscrypt.py 101 102 103 

items = sys.argv 
+0

謝謝,但我不認爲會這樣做。該腳本還有其他幾個用於其他用途的參數,第一個中的整數列表不總是相同的長度。 – stackuser10210 2012-01-01 15:15:26

+0

你可以在命令行中傳遞一個字符串,例如'「101,102,103」',並使用Python的split函數從字符串中取出不同的參數,然後;) – Cydonia7 2012-01-01 15:18:50

2

拆分輸入:

items = sys.argv[1].split(',') 
for item in items: 
    print item 
2

命令行參數傳遞給您的腳本作爲一個字符串,所以你需要使用「」作爲分隔符返回單個整數分裂它。

items = sys.argv[1] 
for item in items.split(','): 
    print item