我想将 CSV 文件的列直接读入变量。结果应该类似于您使用以下 shell 行获得的结果: 而 IFS=,读取 ColumnName1 ColumnName2 ColumnName3 做事
到目前为止,答案似乎与 csv.DictReader 有关,但我无法使其工作。我没有标题行,因此必须手动创建列名。 (我认为字典的形式是 mydictionary={ 'ColumnName1':0, 'ColumnName2':1, 'ColumnName3':3 } )
此外,列是否可以作为简单的变量名称引用,或者您是否必须使用列表[索引] 样式引用。仅按名称打印列的代码示例会很好。感谢您的帮助。
最佳答案
内置 CSV在处理 csv 文件时,模块非常有用。
哦,没关系,如果您正在查看 DictReader,您一定已经在使用它了。
我处理没有标题的文件的通常方法是读取第一行,解析它的逗号数(以及列数)然后设置我的字典/列表以包含来自csv 文件(使用列数并在我的代码中为每列命名。)如有必要,我可以提供一个示例,它非常简单。
我想我更好地理解了你的问题,这是不是你正在寻找的更多东西?:
mydictionary={ 'ColumnName1':[dataRow1Col1, dataRow2Col1, dataRow3Col1],
'ColumnName2':[dataRow1Col2, dataRow2Col2, dataRow3Col2],
'ColumnName3':[dataRow1Col3, dataRow2Col3, dataRow3Col3] }
在这种情况下,这样的事情可能会起作用:
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])
关于python - 使用python将CSV文件列直接读入变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6351186/