什么';执行从python gflags到yaml再到yaml的转换的惯用方法是什么?

什么';执行从python gflags到yaml再到yaml的转换的惯用方法是什么?,python,yaml,abseil,Python,Yaml,Abseil,我正在使用的python gflags用于我的项目 它们是指定配置的一种方便方式,但我经常喜欢运行相同的配置,保存命令行调用并不可取,因为它们很难读取和维护 相反,我希望能够维护指定标志值的YAML文本文件。例如,一个可以作为 python myapp.py --some_int_arg 3 --noboolean_value python myapp.py --from_config config.yaml 也可以作为 python myapp.py --some_int_arg 3 --

我正在使用的python gflags用于我的项目

它们是指定配置的一种方便方式,但我经常喜欢运行相同的配置,保存命令行调用并不可取,因为它们很难读取和维护

相反,我希望能够维护指定标志值的YAML文本文件。例如,一个可以作为

python myapp.py --some_int_arg 3 --noboolean_value
python myapp.py --from_config config.yaml
也可以作为

python myapp.py --some_int_arg 3 --noboolean_value
python myapp.py --from_config config.yaml
其中
config.yaml
的内容是

some_int_arg: 3
boolean_value: false
类似地,如果能够在第一次调用时构造上面的文件就好了

最惯用的表达方式是什么

  • 在命令行上接受配置文件路径并使其覆盖所有
    absl.flags.flags
  • absl.flags.flags
    实例转换为文本表示(最好是YAML),然后可以使用(1)重新调用

  • 编辑。使用
    --flagfile
    ,似乎有一种接受配置文件的简单方法,它应该只在新行中包含每个标志的值。然而,我的问题(2)仍然存在,我如何才能恢复这样一个文件?目前唯一的解决方案似乎是抓取
    标志。标志
    并手动字符串化每个标志值。

    标志。标志_in_string()
    应返回可放入标志文件的字符串。或者
    FLAGS.append_FLAGS_到_文件('path/to/flagfile.txt')
    会将这些标志附加到该文件中


    这对您有用吗?

    我不知道absl py,但我使用YAML和标准
    argparse
    库的包装器完成了这项工作。我在PyPI上发布的许多实用程序中都使用了该代码