如何在Python中将inputfile作为参数读取?

2024-05-08 13:58:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在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”


Tags: inpyimportparserinputparsemain错误
3条回答

好吧,根据您的代码,没有任何逻辑原因可以使它能够识别arg_parse。 您不会在代码的任何一点导入或初始化它。 我不明白你想做什么。 你是从哪里想到阿格·帕斯的?在

好吧,你的arg实际上是arg_parser.parse_参数()未定义。你是从某个地方导入arg_解析器吗? 你能调试看看什么参数吗_parser.parse_参数()退货?在

不需要在两个地方调用parse_args()。调用一次,然后将结果作为参数传递给main()。在

def main(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(args)

我没有理由在main()if块之间分割代码。我只需要把它们放在一个地方,然后把import移到文件的顶部。在

^{pr2}$

相关问题 更多 >