2013-05-26 50 views
0

我試圖讓一段python(2.7)代碼工作。代碼如下:如果2個條件成立,打開文件,否則打印

import os 

def parseOptions(): 

    import optparse 
    parser = optparse.OptionParser(usage= '-h') 
    parser.add_option('-t', '--type', \ 
         choices= ('Warning', 'Error', 'Information', 'All'), \ 
         help= 'The type of error', 
         default= 'Warning') 
    parser.add_option('-g', '--goback', \ 
         type= 'int') 
    (options, args) = parser.parse_args() 
    return options 

options = parseOptions() 

if options.type=='All' and options.goback=='24': 
    os.startfile('logfile.htm') 

else: 
    print 
    print 'Type =', options.type, 
    print 
    print 'Go Back =', options.goback,'hours' 
    print 

我的問題是與if語句,就特別需要這兩個選項是那些確切的投入,它應該打開名爲lofile.htm

文件但此刻它只是正常打印而不打開文件。

如果我刪除'和options.goback'功能只留下'如果options.type'它打開文件。但是,如果我只有options.goback部分,它也不起作用。

所以我的問題是與'option.goback =='24'行':'我只是不確定如何糾正它。因爲目前參數打印正確,它只是不知道它是什麼數字。

任何幫助,將不勝感激!

- M

+0

替換 '24' 通常,如果遇到這樣的問題,在'問題print'ing的值是一個好主意。因此,在'if'之前插入'print repr(options.goback)'來查看當前選項的值。它可能會打印'24'而不是''24「',因此會告訴你它是一個int而不是一個字符串。 – Alfe

+0

謝謝Alfe,我會把它帶上,並用於未來的項目。 – Mitchell

回答

4

options.goback是int,所以由24

+1

Ahhh傳說,謝謝! – Mitchell