Python3:选项解析器,检查布尔选项是否已设置
我想给我的程序添加一个真/假选项(-w)。如果这个选项被设置了,我就会对输出进行排序。
我已经添加了以下选项:
parser.add_option("-w", "--without-replacement",
action="store_true", dest="replacement", default=False,
help="outpt lines without replacement")
replacement = options.replacement
if replacement
if self.lines:
self.lines.sort()
last = self.lines[-1]
for i in range(len(self.lines)-2, -1, -1):
if last == self.lines[i]: del self.lines[i]
else: last=self.lines[i]
但是当我运行程序时,出现了以下错误:
File "randline.py", line 65
if replacement
^
SyntaxError: invalid syntax
你能帮我找出正确的写法吗?这个parser.add_option的写法对吗?
2 个回答
2
if replacement
需要变成:
if replacement:
注意冒号 (:
)
4
这个语法错误是因为你在'if replacement'后面忘记加冒号了。
你必须先调用解析器,选项才会变得可用:
options = parser.parse_args()
如果你想在最后的for循环中去除重复项,可以试试这个:
if replacement and self.lines:
self.lines = list(set(self.lines))
self.lines.sort()