optparse:没有选项字符串

1 投票
1 回答
1556 浏览
提问于 2025-04-15 23:24

我正在尝试使用optparse,但遇到了一些问题。

我的脚本用法是:script <filename>

我不打算添加任何选项,比如:script -f <filename>script --file <filename>

有没有办法让我选择不传递参数字符串?或者有没有办法让我允许用户这样做:

script -f <filename> 
script --filename <filename>
script <filename>

以上所有情况都能得到相同的结果吗?

我知道我可以很简单地用argv[1]来实现,但问题是我可能需要在项目后期添加命令行支持,到时候我不想再到处添加optparse的支持。这就是我想使用optparse的原因。

1 个回答

1
import optparse

parser = optparse.OptionParser()
parser.add_option("-f", "--filename", metavar="FILE", dest="input_file", action="append")
options, args = parser.parse_args()
if options.input_file:
    args.extend(options.input_file)

for arg in args:
    process_file(arg)

这段话的意思是,程序会把args当作一个输入文件的列表来使用。不过,如果你通过-f或者--filename这些参数传入文件名,它们会被加到args里面,这样你就能得到所有的文件名了。

撰写回答