我正在尝试运行已实现argparse的脚本。运行时,我收到以下错误:
用法:compute_distances.py [-h] --datadir DATADIR --info INFO --outdir OUTDIR compute_distances.py:error:参数--datadir是必需的
我试图添加一个datadir参数,但是,我无法弄清楚之后没有给我一个语法错误的方法......
// UPDATE2:
删除了所有不直接属于argparse实现的代码。
#------------------------------------------------------------------------------
# Main program
#------------------------------------------------------------------------------
# Set up the parsing of command-line arguments
parser = argparse.ArgumentParser(description="Compute distance functions on vectors")
parser.add_argument("--datadir", required=True,
help="Path to input directory containing the vectorized data")
parser.add_argument("--info", required=True,
help="Name of file containing information about documents (name and label)")
parser.add_argument("--outdir", required=True,
help="Path to the output directory, where the output file will be created")
args = parser.parse_args()
# Read the info file with details of the documents to process
try:
file_name = "%s/%s" % (args.datadir, args.info)
f_in = open(file_name, 'r')
except IOError:
print "Input file %s does not exist" % file_name
sys.exit(1)
# If the output directory does not exist, then create it
if not os.path.exists(args.outdir):
os.makedirs(args.outdir)
脚本调用
compute_distances.py [-h] "datadir"
答案 0 :(得分:4)
如果您使用以下命令运行脚本:
python compute_distances.py -h
您将在您提供的代码示例中看到argparse
模块设置的详细使用说明。这基本上打印了每个parser.add_argument(...)
调用的帮助字符串,例如:
parser.add_argument(
"--datadir",
required=True,
help="Path to input directory containing the vectorized data"
)
因此,您的脚本调用需要看起来更像:
python compute_distances.py \
--datadir ./my_files/vectorized_data/ \
--info ./my_files/names_and_labels.txt \
--outdir ./my_files/output_data/
注意:上面的\
只是继续执行每个换行符的命令(因此它对Stack Overflow来说更具可读性) - 你可以在一行中将它们全部写在一起,而不是{{1} }。