- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 Python 的新手,并且在玩 optparse。我有这样的解析器功能:
def parse(argv):
"""Option parser, returns the options leave the args."""
version = '0.1'
usage = 'Usage: %prog [options] -f|--file <FILENAME>'
parser = optparse.OptionParser(usage=usage,version="%prog: v.{}".format(version))
parser.add_option("-m", "--mock",
action="store_true", dest="fake", default=False,
help="Mock the file and export to stdout")
parser.add_option("-t", "--test",
action="store_true", dest="test", default=False,
help="Test the file against RocketAnalysis.m after completion")
parser.add_option("-d", "--dir",
dest="save_dir", default=os.getcwd(), metavar="DIR",
help="Change save directory to DIR [Default: current dir]")
parser.add_option("-f", "--file-name",
dest="filename", default=None, metavar="FILENAME",
help="FILENAME to create variables under [ REQUIRED ]")
parser.add_option("-v", "--verbose",
action="store_true", dest="verbose", default="False",
help="Verbose prints enabled")
parser.add_option("-q", "--quiet",
action="store_true", dest="quiet", default="False",
help="Turns on quiet mode with no prints or feedback except errors")
parser.add_option("-c", "--clober",
action="store_true", dest="clobber", default="False",
help="Clobber FILENAME and re-write")
(options, args) = parser.parse_args()
return options
我从 main 调用它(我也将它包含在 main 中,以防出现问题[不是]),然后使用详细选项列出所有选项及其值:
options = parse(argv)
file_path = "{}/{}".format(options.save_dir,options.filename)
print("Is verbose? %s" % options.verbose)
if options.verbose:
opts_dic = vars(options)
print("Options set:")
for k, v in opts_dic.iteritems():
print("\t{} : {}".format(k, v))
print("\tFile path set to: {}".format(file_path))
结果:
./create_stage.py -f this.txt
Is verbose? False
Options set:
verbose : False
fake : False
quiet : False
clobber : False
filename : this.txt
save_dir : /home/silas/Documents/ksp/ksp-octave
test : False
File path set to: /home/silas/Documents/ksp/ksp-octave/this.txt
因此,即使它知道 verbose 是 false(print("Is verbose? %s"% options.verbose) 显示 false),它仍然运行 if block 以获得 verbose (if options.verbose:)。我错过了一些步骤吗?正如我所说,如果我也将解析器留在主 block 中,并且 argv 作为 main(sys.argv) 输入,就会发生这种情况。切换到 argparse 会解决这个问题吗,即使这应该在 optparse 中工作?你能帮忙的话,我会很高兴。运行 Python 2.7.5+
最佳答案
parser.add_option("-v", "--verbose",
action="store_true", dest="verbose", default="False",
help="Verbose prints enabled")
字符串 "False"
是真实的,是一个非零长度的字符串。试试看:print(bool("False"))
。所以 verbose
的默认值是真实的。使用默认值 False
,而不是 "False"
。
关于Python optparse - 选项未被读取为错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22565997/
我正在尝试使用 optparse-applicative程序中的库应根据参数的数量执行不同的操作。 例如,计算周长的程序的参数解析: module TestOpts where import Opti
./hello_world -c arg1 arg2 arg3 是否可以通过编码使选项 -c 仅获得两个参数(arg1 和 arg2)? parser.add_option("-c",
我正在使用 optparse,最近遇到以下问题 - 我想将目录名称作为参数传递。像这样的东西: ./script.py --dir c:\a\b 但是,optparse 消除了“\”符号,因此相关变量
我有一个 mysql 数据库,我正在尝试打印特定学生的所有测试结果。我正在尝试创建一个命令行,在其中输入用户名,然后它将显示他/她的测试结果。我已经访问过此页面,但无法得到答案。 optparse a
通常,可以不带任何参数地调用 optparse 的方法 parse_args。但是,如果需要提供与 sys.argv 不同的参数集,则可以传递给 parse_args。 但是,如果需要将字符串而不是列
我正在开发一个接收一些参数并希望其中一些参数成为必需参数的程序,但我遇到了一些问题: 我确实需要使代码与 Python 2.4.x 兼容,所以我(至少是这么认为)只能使用 optparse 希望避免代
有没有办法让下面的工作?我正在寻找的是根据另一个选项的值获得一个选项的值。 import optparse parser = optparse.OptionParser() parser.add_op
请说明为什么下面的代码给出了错误,尽管两者都表示相同的选项。 In [3]: parser = optparse.OptionParser() In [4]: parser.add_option("-
我是 Python 的新手,并且在玩 optparse。我有这样的解析器功能: def parse(argv): """Option parser, returns the options l
我正在尝试使用 optparse,但遇到问题。 我的脚本用法是:script 我不打算添加任何选项字符串,例如:script -f 或script --file 有什么方法可以选择不传递参数字符串
我编写了一个最多接受 4 个选项和 2 个参数的函数。选项包括 -1、-2、-3 和 -u。默认情况下,它们的值分别设置为 true、true、true 和 false,但启用任何选项都会导致该值翻转
我想将数据传递给脚本,就像这样 if __name__ == '__main__': usage = 'python pull.py [-h ][-p ][-r ]arg1[,arg2..]'
if __name__=='__main__': parser = OptionParser() parser.add_option("-i", "--input_file",
我遇到了以下有趣的错误: parser.add_option("-n", "--number", metavar="NUMBER", type="int", hel
我目前正在学习如何使用 Python optparse 模块。我正在尝试以下示例脚本,但 args 变量结果为空。我使用 Python 2.5 和 2.6 进行了尝试,但无济于事。 import op
我试图更好地了解 optparse,但我很难理解为什么以下代码会这样运行。我在做傻事吗? import optparse def store_test(option, opt_str, value,
我正在编写一个 python 脚本,我希望它能够从命令行调用并作为库函数导入。理想情况下,命令行选项和函数应使用同一组默认值。允许我在两个地方重复使用一组默认值的最佳方法是什么? 这是具有重复默认值的
采用以下相当标准的代码: from optparse import OptionParser opts = OptionParser() opts.ad
当使用 optparse 时,我想在一个选项之后获取整个字符串,但我只获取到第一个空格的一部分。 例如: python myprog.py --executable python someOtherP
是否有 optparse (command line option parser) 的 C# 端口?来自 Python 的模块在一些 OSI-approved license 下可用? 最佳答案 你看
我是一名优秀的程序员,十分优秀!