gpt4 book ai didi

python - 如何将 python 3.6 配置文件转换为 argparser 代码

转载 作者:行者123 更新时间:2023-12-01 08:46:59 25 4
gpt4 key购买 nike

我有一个 file.conf,我使用 ConfigParser() 将其加载到 python 中。 conf 文件具有通常的格式(也使用 opencv):

[decorations]
timestamp_fg= 255,255,255
timestamp_bg= 0,0,0
font_scale = 1.5

conf 文件很大。我想要一种自动为 ArgumentParser() 生成 python 代码的方法,这样我就可以单独创作 conf 文件,生成一些代码,并删除我不需要的代码:

parser = argparse.ArgumentParser()
parser.add_argument("-c","--config", help="full pathname to config file", type=str)
# etc.

我没有找到这样的实用程序,但仍然只使用 python 几个月。

最佳答案

虽然我不确定,但我会做两件事之一

  • 创建一个接受 ConfigParser 对象的函数,并将其转换为 Argparse 的等效项

    • 修改工具
    • 正常运行
    • 运行神奇的部分,将现在解析的 ConfigParser 对象转储为新文件中的 Argparse 命令的大字符串,以便您查看乐趣
  • 为其编写正则表达式并进行直接转换

    • 编写新脚本
    • 传入配置路径
    • 运行神奇的部分,将现在解析的 ConfigParser 对象转储为新文件中的 Argparse 命令的大字符串,以便您查看乐趣

简单地使用string.format()可能就可以了

# make a template for your Argparse options
GENERIC_COMMAND = """\
parser.add_argument(
"--{long_name}", "-{short_name}",
default="{default}",
help="help_text")"""

...
# parse ConfigParser to commands
commands = [
{
"long_name": "argumentA",
},
{
"long_name": "argumentB",
"help_text": "Do Thing B"
},
...
]

commands_to_write_to_file = []
for command in commands:
try:
commands_to_write_to_file.append(
GENERIC_COMMAND.format(**command)) # expand command to args
except Exception as ex:
print("Caught Exception".format(repr(ex)))

# to view your commands, you can write commands to file
# or try your luck with the help command
with open(out.txt, "w") as fh:
fh.write("\n\n".join(commands_to_write_to_file))

这些都不是很好的解决方案,但我希望能够轻松完成 90% 的工作,留下良好的日志记录和您自己来查找和转换剩余的几个奇怪的命令。

一旦您对输出感到满意,您就可以摆脱转储逻辑并直接用 'em 填充 argparse 参数

for command in commands:
argparse.add_argument(**command)

关于python - 如何将 python 3.6 配置文件转换为 argparser 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53266629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com