通过python中的文件传递命令行参数的最佳方法

Lad*_*lav 3 python command-line-arguments

我有很多参数要传递给我的main.py. 将它们存储在 txt 文件中更容易。所以,我想知道使用“配置”文件传递 CL 参数的最佳方法。不幸的是,Shell 脚本不是我需要的。

Rob*_*obᵩ 5

如果您打算使用argparse,则fromfile_prefix_chars旨在解决这个问题。

在您的启动程序中,将所有参数(每行一个)放入一个文件中。传递@file.txt给您的孩子计划。在您的子程序中,将fromfile_prefix_chars参数传递给ArgumentParser()构造函数:

parser = argparse.ArgumentParser(fromfile_prefix_chars='@')
Run Code Online (Sandbox Code Playgroud)

argparse 为您处理剩下的事情。

下面是一个例子:

from argparse import ArgumentParser

parser = ArgumentParser(fromfile_prefix_chars='@')
parser.add_argument('-f', '--foo')
parser.add_argument('--bar')
parser.add_argument('q', nargs='*')

ns = parser.parse_args()
print(ns)
Run Code Online (Sandbox Code Playgroud)

内容foo.txt

parser = argparse.ArgumentParser(fromfile_prefix_chars='@')
Run Code Online (Sandbox Code Playgroud)

命令行和输出:

from argparse import ArgumentParser

parser = ArgumentParser(fromfile_prefix_chars='@')
parser.add_argument('-f', '--foo')
parser.add_argument('--bar')
parser.add_argument('q', nargs='*')

ns = parser.parse_args()
print(ns)
Run Code Online (Sandbox Code Playgroud)