首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Python中读取CSV文件中的行

在Python中读取CSV文件中的行
EN

Stack Overflow用户
提问于 2012-11-17 14:32:37
回答 7查看 276.4K关注 0票数 58

我有一个CSV文件,下面是它的样例:

Year:  Dec: Jan:
1      50   60
2      25   50
3      30   30
4      40   20
5      10   10

我知道如何读取文件并打印每一列(例如。- ['Year', '1', '2', '3', etc])。但我实际上想要做的是读取行,就像这个['Year', 'Dec', 'Jan'],然后是['1', '50', '60'],依此类推。

然后,我想将这些数字['1', '50', '60']存储到变量中,以便稍后对它们求和。

Year_1 = ['50', '60']。然后我就可以做sum(Year_1) = 110了。

我该如何在Python 3中做到这一点呢?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-11-17 14:59:24

你可以这样做:

with open("data1.txt") as f:
    lis = [line.split() for line in f]        # create a list of lists
    for i, x in enumerate(lis):              #print the list items 
        print "line{0} = {1}".format(i, x)

# output 
line0 = ['Year:', 'Dec:', 'Jan:']
line1 = ['1', '50', '60']
line2 = ['2', '25', '50']
line3 = ['3', '30', '30']
line4 = ['4', '40', '20']
line5 = ['5', '10', '10']

或者:

with open("data1.txt") as f:
    for i, line in enumerate(f):             
        print "line {0} = {1}".format(i, line.split())

# output         
line 0 = ['Year:', 'Dec:', 'Jan:']
line 1 = ['1', '50', '60']
line 2 = ['2', '25', '50']
line 3 = ['3', '30', '30']
line 4 = ['4', '40', '20']
line 5 = ['5', '10', '10']

编辑:

with open('data1.txt') as f:
    print "{0}".format(f.readline().split())
    for x in f:
        x = x.split()
        print "{0} = {1}".format(x[0],sum(map(int, x[1:])))

# output          
['Year:', 'Dec:', 'Jan:']
1 = 110
2 = 75
3 = 60
4 = 60
5 = 20
票数 42
EN

Stack Overflow用户

发布于 2012-11-17 14:48:43

使用csv module

import csv

with open("test.csv", "r") as f:
    reader = csv.reader(f, delimiter="\t")
    for i, line in enumerate(reader):
        print 'line[{}] = {}'.format(i, line)

输出:

line[0] = ['Year:', 'Dec:', 'Jan:']
line[1] = ['1', '50', '60']
line[2] = ['2', '25', '50']
line[3] = ['3', '30', '30']
line[4] = ['4', '40', '20']
line[5] = ['5', '10', '10']
票数 101
EN

Stack Overflow用户

发布于 2016-08-03 19:20:14

import csv

with open('filepath/filename.csv', "rt", encoding='ascii') as infile:
    read = csv.reader(infile)
    for row in read :
        print (row)

这将解决您的问题。别忘了给出编码。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13428318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档