如何在Python中读取文件的每一行,并将每一行存储为列表中的元素?
我想逐行读取文件,并将每一行附加到列表的末尾。
如何在Python中读取文件的每一行,并将每一行存储为列表中的元素?
我想逐行读取文件,并将每一行附加到列表的末尾。
当前回答
这比必要的更明确,但可以做到你想要的。
with open("file.txt") as file_in:
lines = []
for line in file_in:
lines.append(line)
其他回答
参见输入和输出:
with open('filename') as f:
lines = f.readlines()
或者去掉换行符:
with open('filename') as f:
lines = [line.rstrip('\n') for line in f]
只需使用splitline()函数。这里有一个例子。
inp = "file.txt"
data = open(inp)
dat = data.read()
lst = dat.splitlines()
print lst
# print(lst) # for python 3
在输出中,您将看到行列表。
如果你面对一个非常大/巨大的文件,并且想读得更快(假设你在TopCoder或HackerBank编码竞赛中),你可以一次将相当大的行块读入内存缓冲区,而不只是在文件级别逐行迭代。
buffersize = 2**16
with open(path) as f:
while True:
lines_buffer = f.readlines(buffersize)
if not lines_buffer:
break
for line in lines_buffer:
process(line)
另一个选项是numpy.genfromttxt,例如:
import numpy as np
data = np.genfromtxt("yourfile.dat",delimiter="\n")
这将使数据成为一个NumPy数组,其行数与文件中的行数相同。
这比必要的更明确,但可以做到你想要的。
with open("file.txt") as file_in:
lines = []
for line in file_in:
lines.append(line)