在Spyder中运行python 2.7.5,尝试设置一个参数解析器,以便在与我的脚本相同的文件夹中导入名为data.csv
的文件中的输入。目前,我的部分功能如下:
from sys import argv
from argparse import ArgumentParser
def ParseArguments():
parser = ArgumentParser(description='Description of program')
parser.add_argument("-f", type=str, dest="data",
default="", help="Input file", required=True)
parser.add_argument("-o", type=str, dest="output_file",
default="", help="Output file")
parser.add_argument("-p", type=float, dest="first_parameter",
default=0.5, help="First Parameter (decimal)")
parser.add_argument("-n", type=int, dest="second_parameter",
default=0, help="Second Parameter (integer)")
args = parser.parse_args()
def my_function(args):
print "Input file is:", args.data
print "Output file is:", args.output_file
print "Parameter 1 is:", args.first_parameter
print "Parameter 2 is:", args.second_parameter
然后我在我的主要功能中调用它:
def main(argv):
args = ParseArguments()
my_function(args)
args.data
def read(data):
fh = read(args.data, "data")
(...)
现在,当我尝试运行时,我收到错误消息:
runfile('C:filepath', wdir='C:/filepath')
usage: code.py [-h] -f DATA [-o OUTPUT_FILE] [-p FIRST_PARAMETER]
[-n SECOND_PARAMETER]
code.py: error: argument -f is required
我无法理解这是如何定义的 - 工作目录中有一个名为data
的文件,根据我对参数解析器的理解,它不关心文件类型分配输入,因此它应该指定我的data.csv
作为输入。是什么给了什么?
另一种选择可能是当然不使用参数解析器,并直接通过命令读取文件,但我想了解我在这里做错了什么。