我有一个CSV文件,其中包含以下格式的数据,没有标题:
12345; TO-345; Something;也可能有用;等等; 44444:33333; and_so_on;
1435; TO-345;还有东西;绝对有用;等等; 44444:33333;已完成;该文件还有1000行左右。
我想用Python完成的是我想逐行读取文件,并且能够每行调用特定的列。例如,当特定于for循环的列从第0行开始时,它可以打印出第0列中的数据,然后继续对下一行执行相同操作直到文件末尾(最后一行)。我已经找到了类似场景的好例子,但却无法理解我想做的事情。
答案 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()
这将从每行文件中打印第二列。