1

我希望能够逐行读取文件,然后在出现提示时(比如用户输入“背景”),它返回 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 导入。

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

[ANAXIMANDER]
[]
[info]

依此类推,具体取决于我从fList.

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

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

4

2 回答 2

3

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

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

或者

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

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

于 2013-03-02T15:37:05.250 回答
1

要打印文件的前 20 行:

import sys
from itertools import islice

with open('Anaximander.txt') as file:
    sys.stdout.writelines(islice(file, 20))
于 2013-03-02T15:51:41.723 回答