2017-03-31 23 views
-1

GOT以上用下面的代碼的錯誤:當我嘗試無效字面對於int()與底座10的Python

import optparse 
import socket 
from socket import * 
from threading import * 


def main(): 
    parser =optparse.OptionParser('usage%prog -H <target host> -p <target port>') 
    parser.add_option('-p',dest='tgtPort',type='string',help='specific target port separated by comma') 
    (options, args) = parser.parse_args() 

    tgtPorts = str(options.tgtPort).split(', ') 
    for p in tgtPorts: 
     print int(p) 


if __name__ == '__main__': 
    main() 

以實現:

python testInt.py -p 20, 80 

預期結果:

20 80 
+0

只是說'通過幫助文本你的論點comma'分離不作'argparse'實際治療逗號分隔參數的方式你要。甚至在參數達到'argparse'之前,shell的命令行分割不能按照你想要的方式工作。 'tgtPort'是''20,''和'「80」'作爲'args'的一個元素結束。 – user2357112

+0

(哦,optparse,不是argparse,不過,optparse和shell的命令行拆分都不會做你想要的東西) – user2357112

+0

'argparse'提供了一些可以幫助的工具,特別是如果你不想引用你的論點,但逗號分隔的論證處理將是尷尬的。炮彈是圍繞空間分離而設計​​的。 – user2357112

回答

2

嗯,當你打電話

python testInt.py -p 20, 80 

20,傳遞給-p參數,80包含在其餘參數中。

你需要它們放在引號爲它工作

python testInt.py -p "20, 80" 
+0

謝謝,但我該如何擺脫「」? –

+0

@Enderphan:有人告訴你你需要使用一件東西,而你的第一個問題是如何擺脫他們說你需要使用的東西? – user2357112

+0

@ user2357112我想知道更多先生。我真的很感激你能否提供幫助。 –

相關問題