在Python中使用fileName.readlines()函数时,列表中是否包含文件末尾的符号?
例如,如果文件被读入字符串列表而最后一行是“结束”,那么列表中是否会有另一个地方带有表示文件末尾的符号?
感谢。
答案 0 :(得分:5)
不,该列表包含文件中每一行的一个元素。
您可以对a中的每一行执行某些操作,如下所示:
lines = infile.readlines()
for line in lines:
# Do something with this line
process(line)
Python有一种更短的方法来完成这项工作,避免一次将整个文件读入内存
for line in infile:
# Do something with this line
process(line)
如果您只想要文件的最后一行
lines = infile.readlines()
last_line = lines[-1]
为什么你认为最后需要一个特殊符号?
答案 1 :(得分:1)
.readlines()
返回的列表与任何其他Python列表一样,没有“结束”标记 - 例如从L = myfile.readlines()
开始,您可以看到L
与len(L)
有多少项,使用L[-1]
获取最后一项,然后使用{{循环遍历所有项目1}},等等......再次 - 就像任何其他列表一样。
如果出于某些特殊原因,在最后一行之后,你想要一些特殊的“哨兵”值,你可以做for item in L:
来添加这样一个哨兵或标记 - 空字符串永远不会去是任何其他行的值(因为每个项都是一个完整的行,包括尾部L.append('')
,所以它永远不会是一个空字符串!)。
你可以使用其他任意标记,例如'\n'
,但通常它更简单,在可行时[[并且在这种情况下显然是可行的,正如我刚才所示]],如果哨兵是准确的与任何其他项目相同的类型。这取决于你正在做什么,需要一个过去的“哨兵”(我不会猜测,因为你没有给我们任何指示,只有相对罕见的问题最好用Python解决,无论如何; - ),但在几乎所有可能的哨兵使用情况下,None
哨兵都会没问题。
答案 2 :(得分:0)
它只返回一个包含每一行的列表 - 列表中没有“EOF”项。