如何将文件逐行读取到列表中?

2025 投票
28 回答
4909166 浏览
提问于 2025-04-16 01:29

我想知道怎么用Python读取一个文件的每一行,并把每一行存储为列表中的一个元素。

我的目标是逐行读取这个文件,然后把每一行加到列表的末尾。

28 个回答

715

这段代码虽然写得有点复杂,但它能实现你想要的效果。

with open("file.txt") as file_in:
    lines = []
    for line in file_in:
        lines.append(line)
1219

请查看 输入和输出

with open('filename') as f:
    lines = f.readlines()

或者可以去掉换行符:

with open('filename') as f:
    lines = [line.rstrip('\n') for line in f]
2951

这段代码会把整个文件读入内存,并去掉每一行末尾的所有空白字符(包括换行符和空格):

with open(filename) as file:
    lines = [line.rstrip() for line in file]

如果你在处理一个很大的文件,建议你逐行读取和处理文件:

with open(filename) as file:
    for line in file:
        print(line.rstrip())

在Python 3.8及以上版本中,你可以使用带有海象运算符的while循环,像这样:

with open(filename) as file:
    while line := file.readline():
        print(line.rstrip())

根据你打算如何处理文件以及文件的编码方式,你可能还需要手动设置访问模式和字符编码:

with open(filename, 'r', encoding='UTF-8') as file:
    while line := file.readline():
        print(line.rstrip())

撰写回答