1

问候 当我尝试将参数放入我的 python 脚本时收到错误消息。这是功能

from optparse import OptionParser

def getparams():
usage = "usage: %prog -d <dcb_ip> -p <port> "
parser = OptionParser(usage)
parser.add_option("-d", "--dcb_ip",
                  action="store",
                  dest="dcb_ip",
                  default="172.14.20.31",
                  help="Specifiy the IP address of the device, default is [%default].")
parser.add_option("-p", "--port",
                  action="store",
                  type="int",
                  dest="port",
                  default=51500,
                  help="Specify the pcl port of the monitor, default is [%default].")
parser.add_option("-i", "--interactive", action="store_true",  default=False, dest="interactive")
parser.add_option("-l", "--loop", action="store",  default=False, dest="loop")
parser.add_option("-w", "--write", action="write_mem",  default=False, dest="interactive")  #Write HART option
parser.add_option("-r", "--read", action="read_mem",  default=False, dest="interactive")
parser.add_option("-c", "--Cancel", action="cancel_mem",  default=False, dest="interactive")
(options, args) = parser.parse_args(sys.argv)    
return options

有谁知道为什么我一直得到

Traceback (most recent call last):
  File "C:\Users\Documents\devices_15_JUL_2013\RSimulator.py", line 73, in getparams
    parser.add_option("-w", "--write", action="write_mem",  default=False)  #Write mem option
OptionError: option -w/--write: invalid action: 'write_mem''

我认为 -c 可能是一个常见的选项或其他东西,但即使我改变了它仍然不起作用:(

4

1 回答 1

0

write_mem,read_mem并且不是关键字cancel_mem的有效值;有关可用内容,action参阅标准选项操作

但是,尚不清楚您希望这些选项做什么。您将目标指定为interactive,但它用作-i,--interactive选项的布尔标志。

如果您想在选项中为每个_mem选项设置布尔标志,请使用store_true操作:

parser.add_option("-w", "--write", action="store_true", default=False, dest="write_mem")
parser.add_option("-r", "--read", action="store_true", default=False, dest="read_mem")
parser.add_option("-c", "--cancel", action="store_true", default=False, dest="cancel_mem")
于 2013-09-05T19:49:37.910 回答