1. ホーム
  2. python

[解決済み] PythonでCSVファイルから行を読み込む

2022-03-03 11:31:38

質問

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でこれを行うにはどうしたらいいでしょうか?

どのように解決するのですか?

次のような方法があります。

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