如何在Python中读取文件的每一行,并将每一行存储为列表中的元素?
我想逐行读取文件,并将每一行附加到列表的末尾。
如何在Python中读取文件的每一行,并将每一行存储为列表中的元素?
我想逐行读取文件,并将每一行附加到列表的末尾。
当前回答
如果您想从命令行或stdin读取文件,也可以使用fileinput模块:
# reader.py
import fileinput
content = []
for line in fileinput.input():
content.append(line.strip())
fileinput.close()
将文件传递给它,如下所示:
$ python reader.py textfile.txt
在此处阅读更多信息:http://docs.python.org/2/library/fileinput.html
其他回答
只需使用splitline()函数。这里有一个例子。
inp = "file.txt"
data = open(inp)
dat = data.read()
lst = dat.splitlines()
print lst
# print(lst) # for python 3
在输出中,您将看到行列表。
f = open("your_file.txt",'r')
out = f.readlines() # will append in the list out
现在,变量out是您想要的列表(数组)。您可以选择:
for line in out:
print (line)
Or:
for line in f:
print (line)
你会得到同样的结果。
如果您想从命令行或stdin读取文件,也可以使用fileinput模块:
# reader.py
import fileinput
content = []
for line in fileinput.input():
content.append(line.strip())
fileinput.close()
将文件传递给它,如下所示:
$ python reader.py textfile.txt
在此处阅读更多信息:http://docs.python.org/2/library/fileinput.html
Python 3.4中引入了pathlib,它有一种非常方便的方法来从文件中读取文本,如下所示:
from pathlib import Path
p = Path('my_text_file')
lines = p.read_text().splitlines()
(splitlines调用将其从包含文件全部内容的字符串转换为文件中的行列表。)
pathlib有很多方便的地方。readtext很好,很简洁,您不必担心打开和关闭文件。如果您只需一次将文件全部读入,这是一个不错的选择。
另一个选项是numpy.genfromttxt,例如:
import numpy as np
data = np.genfromtxt("yourfile.dat",delimiter="\n")
这将使数据成为一个NumPy数组,其行数与文件中的行数相同。