如何让我的列表打印出每一行?

时间:2014-02-12 21:45:57

标签: python list csv

我有点困惑为什么这不起作用。我正在尝试让我的程序读取csv文件中的每一行,将其从字符串更改为浮点数,然后逐行打印出来。

csv_list = open('example_data.csv','rb')
lists= csv_list.readlines()
csv_list.close()


for lines in lists:
    lists_1 = lists.strip().split()
    list_2 = [float(x) for x in lists_1]
print list_2

任何帮助都将不胜感激。

6 个答案:

答案 0 :(得分:5)

首先,不要使用readlines。只需迭代文件

for lines in csv_list:
   ...

第二,使用csv库来阅读http://docs.python.org/2/library/csv.html

在你的例子中,它是csv,所以不要用空格分隔,而是用逗号或分号分隔。

答案 1 :(得分:1)

试试这个:

import pprint

with open('example_data.csv','rb') as csv_list:
    lists= csv_list.readlines()
    lists_1 = []
    lists_2 = []
    for lines in lists:
        lists_1.append(lines.strip().split())
        list_2.append([float(x) for x in lists_1])
    pprint.pprint(list_2)

答案 2 :(得分:1)

for lines in lists:
    lists_1 = lines.strip().split()   # 'lines' here
    list_2 = [float(x) for x in lists_1]
    print list_2 # print your list in a loop

答案 3 :(得分:0)

print list_2需要缩进到与循环其余部分相同的级别,它应该是lines.strip().split()

答案 4 :(得分:0)

print list_2在for循环之外。你需要缩进它。

答案 5 :(得分:0)

根据文件名判断,我假设文件中的字段用逗号分隔。如果是这种情况,则需要使用逗号分隔行:

    lists_1 = lists.strip().split(',')

更好的是,使用csv模块。这是一个例子:

import csv 

with open('example_data.csv', 'rb') as f:
    csvreader = csv.reader(f)
    for line in csvreader:
        line = [float(x) for x in line] # line is now a list of floats
        print line