2017-03-31 87 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我想知道更多先生。我真的很感激你能否提供帮助。 –

相关问题