我希望能够逐行读取文件,然后在提示时(比如用户输入'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
检索的对象数量。
我真的希望它像我刚刚展示的例子一样打印但没有列表括号([])。
如有必要,绝对可以澄清。
答案 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))