将.txt文件转换为列表并能够逐行索引和打印列表

时间:2013-03-02 15:34:14

标签: python list python-3.x

我希望能够逐行读取文件,然后在提示时(比如用户输入'background'),它返回0:24行,因为这些是.txt中与他/她的背景相关的行

def anaximander_background():
    f = open('Anaximander.txt', 'r')
    fList = []
    fList = f.readlines()
    fList = [item.strip('\n') for item in fList]
    print(fList[:20])

此代码打印出如下列表:

['ANAXIMANDER', '', 'Anaximander was born in Miletus in 611 or 610 BCE.', ...]

我尝试了很多不同的方法(for,if和while循环)并尝试了csv import。

我得到的最接近的是能够打印出类似于:

[ANAXIMANDER]
[]
[info]

等等,取决于我从fList检索的对象数量。

我真的希望它像我刚刚展示的例子一样打印但没有列表括号([])。

如有必要,绝对可以澄清。

2 个答案:

答案 0 :(得分:3)

循环列表,或使用str.join()

for line in fList[:20]:
    print(line)

print('\n'.join(fList[:20])

第一次打印fList切片中包含的每个元素,第二个将这些行连接成一个新的字符串,在打印之前它们之间有\n个换行符。

答案 1 :(得分:0)

从文件中打印前20行:

import sys
from itertools import islice

with open('Anaximander.txt') as file:
    sys.stdout.writelines(islice(file, 20))