2011-10-15 30 views
0

我想要一個真/假選項(-w)到我的程序。 如果設置了該選項,我將對輸出進行排序。Python3:選項解析器,檢查是否已設置布爾選項

我有以下選項添加:

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是否正確編程?

+0

你想在迭代中做什麼? –

回答

4

語法錯誤是因爲您在'if replacement'後忘記了冒號。

你有實際調用解析器的選項纔可用:

options = parser.parse_args() 

如果你想在結束時刪除重複的for循環,試試這個:

if replacement and self.lines: 
    self.lines = list(set(self.lines)) 
    self.lines.sort() 
2
if replacement 

需求是:

if replacement: 

注意冒號(:

+0

謝謝! dsfdsfsdf – Shubham

相關問題