如何将输入文件作为参数提供并在 Python 中读取?
How to give an input-file as argument an read it in Python?
我正在尝试使用 argparse 在 Python 中将输入文件作为参数提供,但不知何故,我遇到了错误。
这是我的代码:
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()
我正在从命令行使用以下命令调用脚本:
python updaterScript.py --input_file myCSVFile.csv
我在这里做错了什么?为什么我会收到错误消息?
这是错误:
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()
NameError: 名称 'arg_parser' 未定义
好吧,您的 args 实际上是 arg_parser.parse_args() 未定义。您是否从某处进口或拥有 arg_parser?
你能调试看看 arg_parser.parse_args() returns?
好吧,根据您的代码, 无法识别 arg_parse。
您没有在(看到的)代码的任何时候导入或初始化它。
我不明白你想在那里做什么。
你从哪里想出 arg_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
移到文件的顶部。
import argparse
def main():
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)
input_file = args.input_file
update_file_input(input_file)
if __name__ == '__main__':
main()
我正在尝试使用 argparse 在 Python 中将输入文件作为参数提供,但不知何故,我遇到了错误。
这是我的代码:
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()
我正在从命令行使用以下命令调用脚本:
python updaterScript.py --input_file myCSVFile.csv
我在这里做错了什么?为什么我会收到错误消息?
这是错误:
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()
NameError: 名称 'arg_parser' 未定义
好吧,您的 args 实际上是 arg_parser.parse_args() 未定义。您是否从某处进口或拥有 arg_parser? 你能调试看看 arg_parser.parse_args() returns?
好吧,根据您的代码, 无法识别 arg_parse。 您没有在(看到的)代码的任何时候导入或初始化它。 我不明白你想在那里做什么。 你从哪里想出 arg_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
移到文件的顶部。
import argparse
def main():
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)
input_file = args.input_file
update_file_input(input_file)
if __name__ == '__main__':
main()