参数解析器不接受我的数据文件

时间:2014-01-04 16:30:53

标签: python command-line-arguments

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作为输入。是什么给了什么?

另一种选择可能是当然不使用参数解析器,并直接通过命令读取文件,但我想了解我在这里做错了什么。

0 个答案:

没有答案