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

1 投票
2 回答
1170 浏览
提问于 2025-04-17 17:41

我想逐行读取一个文件,然后当用户输入“background”时,能够返回文件中与背景相关的第0到第24行。

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中获取了多少个对象。

我真的希望它能像我刚才展示的例子那样打印出来,但不带列表的方括号([ ])。

如果需要的话,我可以进一步解释。

2 个回答

1

要从一个文件中打印出前20行,可以使用以下代码:

import sys
from itertools import islice

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

你可以选择遍历这个列表,或者使用 str.join() 方法:

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

或者

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

第一个方法是把 fList 列表中的每个元素单独打印出来,第二个方法则是把这些行合并成一个新的字符串,中间用 \n 来表示换行,然后再打印出来。

撰写回答