从文件中读取数据并每行打印特定的列

时间:2015-07-14 10:04:19

标签: python list file python-3.x

我有一个CSV文件,其中包含以下格式的数据,没有标题:

12345; TO-345; Something;也可能有用;等等; 44444:33333; and_so_on;

1435; TO-345;还有东西;绝对有用;等等; 44444:33333;已完成;

该文件还有1000行左右。

我想用Python完成的是我想逐行读取文件,并且能够每行调用特定的列。例如,当特定于for循环的列从第0行开始时,它可以打印出第0列中的数据,然后继续对下一行执行相同操作直到文件末尾(最后一行)。我已经找到了类似场景的好例子,但却无法理解我想做的事情。

2 个答案:

答案 0 :(得分:0)

要从文件中提取信息,您可以使用csv模块。

>>> import csv
>>> with open("data.txt", "r") as f:
...   reader = csv.reader(f, delimiter=";")
...   for row in reader:
...     print(row)
... 
['12345', 'TO-345', 'Something', 'Might be useful as well', 'etc', '44444:33333', 'and_so_on', '']
['1435', 'TO-345', 'Something as well', 'Definately useful', 'etc', '44444:33333', 'done', '']

(我把你的样本放在data.txt

在内部循环中,您可以选择所需的任何列,行只是字符串列表。要获得第三列,您需要打印print(row[2])而不是整行。

或者,您也可以先将所有行加载到列表中,如果您想多次循环它:

import csv

def load_data(filename):
    with open(filename, "r") as f:
        reader = csv.reader(f, delimiter=";")
        return list(reader)

data = load_data("data.txt")
for row in data:
    print(row[2])

答案 1 :(得分:0)

你可以从一个简单的python代码开始,比如

file = open('filename', 'r');
for line in file:
    row = line.split(';')
    print(row[1])
file.close()

这将从每行文件中打印第二列。