如何在Python中读取csv文件时定义列标题
我有一个用逗号分隔的表格,想在Python中读取。首先,我需要告诉Python不要跳过第一行,因为那一行是表头。接着,我需要告诉它把数据读成一个列表,而不是字符串,因为我需要用这些数据来构建一个数组,而第一列是非整数的(也就是行头)。
这个表格总共有11列和5行。
下面是表格的格式(除了没有行间距):
col1,col2,col3,col4,col5,col6,col7,col8,col9,col10,col11
w0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
w1 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
w2 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
w3 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
有没有办法做到这一点?任何帮助都非常感谢!
1 个回答
28
你可以使用csv
模块来处理这种情况。这个模块会把每一行读成一个字符串列表,表示不同的字段。
具体怎么使用取决于你之后打算怎么处理这些数据,但你可以考虑创建一个Reader
对象(通过csv.reader()
函数),然后调用next()
一次来获取第一行,也就是表头,然后用for
循环遍历剩下的行。
r = csv.reader(...)
headers = r.next()
for fields in r:
# do stuff
如果你最后打算把字段放进一个字典里,那你可以用DictReader
,这个类会自动从第一行获取字段名,所以你只需要创建它并在循环中使用。