Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果两个条件为真,则打开文件,否则打印_Python_If Statement_Python 2.7_Optparse - Fatal编程技术网

Python 如果两个条件为真,则打开文件,否则打印

Python 如果两个条件为真,则打开文件,否则打印,python,if-statement,python-2.7,optparse,Python,If Statement,Python 2.7,Optparse,我正在尝试使用一段python(2.7)代码。代码如下: import os def parseOptions(): import optparse parser = optparse.OptionParser(usage= '-h') parser.add_option('-t', '--type', \ choices= ('Warning', 'Error', 'Information', 'All'), \

我正在尝试使用一段python(2.7)代码。代码如下:

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的文件

但目前它只是正常打印,没有打开文件

如果删除“and options.goback”函数,只留下“If options.type”,则会打开文件。但是如果我只有options.goback部分,它也不起作用

所以我的问题是“options.goback='24':“我只是不知道如何纠正它。”。因为现在参数打印得很好,它只是不知道它是什么数字

任何帮助都将不胜感激


~M

options.goback是一个int,所以用24替换“24”。goback是一个int,所以用24替换“24”

一般来说,如果遇到这样的问题,
打印有问题的值是一个好主意。因此,在
if
之前插入
print repr(options.goback)
,查看该选项当前的值。它可能会打印
24
,而不是
“24”
,从而向您显示它是一个int而不是字符串。谢谢阿尔夫,我将把它带到船上并用于未来的项目。一般来说,如果遇到这样的问题,
打印有问题的值是一个好主意。因此,在
if
之前插入
print repr(options.goback)
,查看该选项当前的值。它可能会打印
24
,而不是
“24”
,从而向您显示它是一个int而不是字符串。谢谢阿尔夫,我将把它带到船上,并在未来的项目中使用它。