使用python将.csv文件转换为列

时间:2019-11-01 11:16:12

标签: python csv text-to-column

我有一个.csv文件,其中的数据用逗号分隔,我想将其分成几列。为此,我试图将每个行元素放入列表中,然后将它们放入新文件的列中。我正在使用的代码如下:

import csv

c1 = []
c2 = []
c3 = []
with open('File.csv', 'r') as f:
   reader = csv.reader(f, delimiter=',')
   for row in reader:
       c1.append(row[0])
       c1.append(row[1])
       c1.append(row[2])

由于某种原因,我只能将.csv文件的列存储在c1中。对于c2和c3,我遇到了错误。我似乎在获取当前行的第一个元素之后,“阅读器”立即跳入下一行。有人可以给我一个主意吗?也许甚至有更简单的方法可以做到这一点。谢谢

1 个答案:

答案 0 :(得分:0)

那里有一个语法错误。 您将所有内容添加到 c1 中,而不是将值放入各种列表中。

假设 [big one!] - csv 文件每行仅包含 3 列。

我用下面的代码测试过

import csv

c1 = []
c2 = []
c3 = []
with open('csvfile.csv', 'r') as f:
   reader = csv.reader(f, delimiter=',')
   for row in reader:
       c1.append(row[0])
       c2.append(row[1])
       c3.append(row[2])
print(f'column1:{c1}')
print(f'column2:{c2}')
print(f'column3:{c3}')

输出

% python3 csv_to_column.py
column1:['1', '4', '7']
column2:['2', '5', '8']
column3:['3', '6', '9']

参考 - 虚拟 csv 文件

% cat csvfile.csv
1,2,3
4,5,6
7,8,9