使用python从csv文件自动化input_fields声明

时间:2012-11-02 18:52:00

标签: python csv

我一直遇到以下问题,我需要声明输入文件的input_fields,我只是将文件复制并粘贴到我的变量中,添加逗号和引号。例如:

input = ("First Name", "Middle Name", "Last Name")

我想自动执行此过程,以便我的程序可以有这样一行:

input = inputize.function1("name_of_file.csv")

其中function1获取输入文件(“name_of_file.csv”)并返回,在这种情况下返回一个包含三个字符串的元组(“First Name”,“Middle Name”,“Last Name”)。你可以想象这是一个痛苦,因为我必须手动为很多文件做这个,其中很多都有很多列......

我想我希望基本结构看起来如下所示,但我一直认为必须有一个非常简单的方法来获取csv文件的第一行,分隔每个列标题,在它周围加上引号,然后放一个之后用逗号表示,然后将整个内容存储为元组...

def function1(input_file):

  with open(input_file, "rb") as infile:
       for line in infile:
           split = line.split(",")
           for item in split:
               input = '"' + item + '","
           return input

我希望这对其他人也有帮助,因为它似乎是一个常见的/超级烦人的手动任务,并且肯定会感谢任何指导。

附录

我一直在编写这样的代码:

input_fields = ("First Name", "Middle Name", "Last Name")
reader = csv.DictReader(infile, fieldnames = input_fields)

根据你的答案,看起来顶线是没有实际意义的,因为我所要做的就是:

reader = csv.DictReader(infile)

1 个答案:

答案 0 :(得分:1)

您可以使用具有fieldnames属性的DictReader

reader = DictReader(open('name_of_file.csv'))
reader.fieldnames

使用内置的DictReader将帮助您解决解析csv文件所涉及的一些细微差别。