我有下面的.csv
文件,我试图作为一个整体阅读:
---------------------------------------------------------------
#INFO | | | | | |
---------------------------------------------------------------
#Study name | g1 | | | | |
---------------------------------------------------------------
#Respondent Name | name | | | | |
---------------------------------------------------------------
#Respondent Age | 20 | | | | |
---------------------------------------------------------------
#DATA | | | | | |
---------------------------------------------------------------
Row | Timestamp | Source | Event | Sample | Anger|
---------------------------------------------------------------
1 | 133 | Face | 1 | 3 | 0.44 |
---------------------------------------------------------------
2 | 240 | Face | 1 | 4 | 0.20 |
---------------------------------------------------------------
3 | 12 | Face | 1 | 5 | 0.13 |
---------------------------------------------------------------
4 | 133 | Face | 1 | 6 | 0.75 |
---------------------------------------------------------------
5 | 87 | Face | 1 | 7 | 0.25 |
---------------------------------------------------------------
Image of the file
下面是我用来打开、读取文件和打印到终端的代码:
import csv
def read_csv():
with open("in/2.csv", encoding="utf-8-sig") as f:
reader = csv.DictReader(f)
print(list(reader))
read_csv()
我得到的输出只包括.csv
的前两列:
[{'#INFO': '#Study name', '': ''}, {'#INFO': '#Respondent Name', '': ''}, {'#INFO': '#Respondent Age', '': ''}, {'#INFO': '#DATA', '': ''}, {'#INFO': 'Row', '': 'Anger'}, {'#INFO': '1', '': '4.40E-01'}, {'#INFO': '2', '': '2.00E-01'}, {'#INFO': '3', '': '1.30E-01'}, {'#INFO': '4', '': '7.50E-01'}, {'#INFO': '5', '': '2.50E-01'}]
为什么我的输出中缺少其他列?我希望从Row
开始的其他列也包括在内。任何方向都将受到赞赏。谢谢!
2条答案
按热度按时间cbeh67ev1#
DictReader
要求文件的第一行包含列名(每个列名彼此不同),后续行包含数据条目。如果多个列名只是空字符串,则最后一列中的值将被分配给返回字典中的键''
。要跳过前五行,您可以这样写:
nr9pn0ug2#
试试看:
在初始化
DictReader
之前。这应该跳过前5行。