我一直遇到以下问题,我需要声明输入文件的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)
答案 0 :(得分:1)
您可以使用具有fieldnames属性的DictReader
!
reader = DictReader(open('name_of_file.csv'))
reader.fieldnames
使用内置的DictReader将帮助您解决解析csv文件所涉及的一些细微差别。