如何在Python中将整个文件读入列表?

8
我想把整个文件读入Python列表中,有人知道怎么做吗?

1
你正在使用哪个教程学习Python? - Greg Hewgill
3
你曾经阅读过 Python 文档吗?"any" 在这句话中是加强语气的词,翻译时可以省略不翻译。 - Chris Lutz
6个回答

9

更简单:

with open(path) as f:
    myList = list(f)

如果您不想要换行符,可以使用 list(f.read().splitlines())。这将把文件内容读入一个列表中,并去除每行末尾的换行符。

6
print "\nReading the entire file into a list."
text_file = open("read_it.txt", "r")
lines = text_file.readlines()
print lines
print len(lines)
for line in lines:
    print line
text_file.close()

1
实际上这里没有必要进行两次迭代 - 第一次使用readlines,第二次使用for循环。 - Artsiom Rudzenka

4

Max的回答是可行的,但每行末尾会留下换行符(\n)。

除非这是期望的行为,否则请使用以下范例:

with open(filepath) as f:
    lines = f.read().splitlines()

for line in lines:
    print line # Won't have '\n' at the end

1

或者:

allRows = [] # in case you need to store it
with open(filename, 'r') as f:
    for row in f:
        # do something with row
        # And / Or
        allRows.append(row)

请注意,您不需要在此处关闭文件,也无需在此处使用readlines。这与文件编程有关。

1
请注意,Python3的pathlib允许您使用read_text方法安全地在一行中读取整个文件,而无需编写with open(...)语句 - 它将为您打开文件、读取内容并关闭文件:
lines = Path(path_to_file).read_text().splitlines()

0

另一种略有不同的方式:

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

for line in lines:
    print(line.rstrip())

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接