我试图在Python中使用argparse提供一个输入文件作为参数,但是不知何故,我得到了一个错误。在
这是我的代码:
from argparse import ArgumentParser
def main():
args = arg_parser.parse_args()
print('in main, args = ',args)
input_file = args.input_file
update_file_input(input_file)
if __name__ == '__main__':
import argparse
parser = argparse.ArgumentParser(description="less script")
parser.add_argument('--input_file', required=True, help="input file containing IDs and attributes to change (csv)")
args = parser.parse_args()
print('args is: ',args)
main()
我从命令行使用以下命令调用脚本:
^{pr2}$我做错什么了?为什么我会出错?在
错误如下:
Traceback (most recent call last):
File "/home/ProjectP/runtime/bin/updaterScript.py", line 11, in <module>
load_entry_point('ProjectP==1.0', 'console_scripts', 'updaterScript.py')()
File "/home/ProjectP/runtime/lib/python3.6/site-packages/ProjectP/updaterScript.py", line 10
0, in main
args = arg_parser.parse_args()
名称错误:未定义名称“arg_parser”
好吧,根据您的代码,没有任何逻辑原因可以使它能够识别arg_parse。 您不会在代码的任何一点导入或初始化它。 我不明白你想做什么。 你是从哪里想到阿格·帕斯的?在
好吧,你的arg实际上是arg_parser.parse_参数()未定义。你是从某个地方导入arg_解析器吗? 你能调试看看什么参数吗_parser.parse_参数()退货?在
不需要在两个地方调用
parse_args()
。调用一次,然后将结果作为参数传递给main()
。在我没有理由在
^{pr2}$main()
和if
块之间分割代码。我只需要把它们放在一个地方,然后把import
移到文件的顶部。在相关问题 更多 >
编程相关推荐