如何从python中的csv文件中获取数据

时间:2010-03-09 13:33:46

标签: python

我正在使用csv.reader来读取文件,但它给了我整个文件。

file_data = self.request.get('file_in');
file_Reader = csv.reader( file_data );
for fields in file_Reader:

我一次想要一行,并从该行分开数据。

ex: filedata = name,sal,dept
               x,12000,it
o\p=
name
sal
dept
.
.
.

4 个答案:

答案 0 :(得分:1)

>>> import csv
>>> spamReader = csv.reader(open('eggs.csv'), delimiter=' ', quotechar='|')
>>> for row in spamReader:
...     print ', '.join(row)
Spam, Spam, Spam, Spam, Spam, Baked Beans
Spam, Lovely Spam, Wonderful Spam

取自the manual

希望有帮助...

答案 1 :(得分:1)

看起来您正在尝试将一串数据直接传递给csv.reader()。它期待一个可迭代的对象,如列表或文件句柄。 csv module的文档提到了这一点。因此,您可能希望在将字符串传递给csv.reader之前将字符串拆分为换行符。

import csv
file_data = self.request.get('file_in')
file_data_list = file_data.split('\n')
file_Reader = csv.reader(file_data_list)
for fields in file_Reader:
    print row

希望有所帮助。

答案 2 :(得分:0)

为什么不手动完成?

for line in fd:
        foo, bar, baz = line.split(";")

答案 3 :(得分:0)

通常使用的分隔符是“,”,我已将数据映射到x,y变量

import csv
x = []
y=  []
with open('FileName.csv','r') as csvfile:
    plot=csv.reader(csvfile,delimiter=',')
for row in plot:
    x.append(int(row[0])) 
    y.append(int(row[1]))

plt.bar(x,y,label='name')