0

我一直遇到以下问题,我需要声明输入文件的 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)
4

1 回答 1

1

你可以使用DictReader它有一个 fieldnames 属性!

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

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

于 2012-11-02T18:54:32.260 回答