使用python将CSV文件列直接读入变量名称

Wya*_*att 5 python csv

我想将CSV文件的列直接读入变量.结果应该与下面的shell行相似:IFS =,读取ColumnName1 ColumnName2 ColumnName3做东西

到目前为止答案似乎是csv.DictReader,但我无法使其工作.我没有标题行,因此必须手动创建列名.(我想用字典mydictionary = {'ColumnName1':0,'ColumnName2':1,'ColumnName3':3})

此外,列可以作为简单变量名引用,还是必须使用list [index]样式引用.只是按名称打印列的代码示例会很好.谢谢您的帮助.

chi*_*ete 7

使用csv文件时,内置CSV模块非常有用.


哦,没关系,你必须使用它,如果你正在看DictReader.

我处理没有标题的文件的常用方法是读取第一行,解析它的逗号数(以及列数)然后设置我的字典/列表以包含csv文件中的值(使用列数并在我的代码中为每列提供一个名称.)如果需要,我可以提供一个例子,它非常简单.


我想我更了解你的问题,这更像你在寻找什么?:

mydictionary={ 'ColumnName1':[dataRow1Col1, dataRow2Col1, dataRow3Col1], 
               'ColumnName2':[dataRow1Col2, dataRow2Col2, dataRow3Col2], 
               'ColumnName3':[dataRow1Col3, dataRow2Col3, dataRow3Col3] }
Run Code Online (Sandbox Code Playgroud)

在这种情况下,这样的事情可能会起作用:

import csv
Col1 = "ColumnName1"
Col2 = "ColumnName2"
Col3 = "ColumnName3"
mydictionary={Col1:[], Col2:[], Col3:[]}
csvFile = csv.reader(open("myfile.csv", "rb"))
for row in csvFile:
  mydictionary[Col1].append(row[0])
  mydictionary[Col2].append(row[1])
  mydictionary[Col3].append(row[2])
Run Code Online (Sandbox Code Playgroud)