2014-07-13 121 views
2

假設我有這個腳本。使用整數參數運行腳本

#!/usr/bin/env python  
from sys import argv 

filename, value1, value2 = argv 

print value1 + value2 

現在,我想這兩個變量,value1value2整數傳遞。現在當我在我的命令行中運行這個時,我會得到類似這樣的東西。

[email protected] -/Desktop $ python test.py 2 2 
22 

我想要這樣的事情發生。

[email protected] -/Desktop $ python test.py 2 2 
4 

我該怎麼做?

回答

3

將您的參數轉換爲整數。

import sys 
value1, value2 = (int(x) for x in sys.argv[1:]) 

這當然假設您期待正好兩個可以轉換爲整數的參數。

如果你想傳遞整數任意數量的,你可以讓他們的列表,

argnums = [int(x) for x in sys.argv[1:]] 

此外,如果你曾經打算寫一個嚴肅的命令行界面,可以考慮使用argparse

2

這是因爲參數收到爲字符串

你能做什麼?將它們轉換爲int:在argv的

value1 = int(value1) 
value2 = int(value2) 
2

一切都是字符串。您需要手動將它們轉換爲整數,例如:

value1 = int(argv[1]) 
value2 = int(argv[2]) 
相關問題