我创建了一个从命令行运行的Python程序,用户输入文件进行处理。从fileinput读取文件,可以在它们上使用optparse选项。我的问题是,如果用户没有输入任何选项或文件名,程序什么也不做,继续运行。如果fileinput为空,我希望程序默认显示帮助选项。
有没有办法检查fileinput.input(argv)是否为空?它defaults to stdin when empty,但我如何预先检查它是否为空?
def parse_options():
parser = optparse.OptionParser()
parser.add_option('-o', '--output', dest='output',
default='c',
help='[c/f/h] output to (c)onsole, (f)ile or (h)tml')
parser.add_option('-s', '--sort', dest='sort',
default='pa',
help='[p/c/m/d] sort by (p)ath, (c)all frequency, (m)ean duration or (d)uration,\n'
'[a/d] sort by (a)scending or (d)escending order')
options, argv = parser.parse_args()
if options.output == 'f':
output_action = LogAnalyser.output_to_file
elif options.output == 'h':
output_action = LogAnalyser.output_to_html
else:
output_action = LogAnalyser.output_to_console
#if fileinput.input(argv) is None:
# parser.print_help()
# quit()
return output_action, options.sort, fileinput.input(argv)
答案 0 :(得分:1)
好吧,如果optparse
解析器返回位置参数列表,您只需检查它是否空虚:
(options, args) = parser.parse_args()
...
if args:
for line in fileinput.input(args):
...
如果这还不够,请详细说明您的问题。