如何在 Python 中读取文件的最后一行?

新手上路,请多包涵

我有两个要求。

第一个要求-我想读取文件的最后一行并将最后一个值分配给 python 中的变量。

第二个要求-

这是我的示例文件。

 <serviceNameame="demo" wsdlUrl="demo.wsdl" serviceName="demo"/>
<context:property-placeholder location="filename.txt"/>

我想从这个文件中读取内容,即 filename.txt ,它将在 <context:property-placeholder location= . 之后。并且想将该值分配给 python 中的变量。

原文由 techi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 954
1 个回答

一个简单的解决方案,不需要将整个文件存储在内存中(例如使用 file.readlines() 或等效结构):

 with open('filename.txt') as f:
    for line in f:
        pass
    last_line = line

对于大文件,寻找文件末尾并向后移动以找到换行符会更有效,例如:

 import os

with open('filename.txt', 'rb') as f:
    try:  # catch OSError in case of a one line file
        f.seek(-2, os.SEEK_END)
        while f.read(1) != b'\n':
            f.seek(-2, os.SEEK_CUR)
    except OSError:
        f.seek(0)
    last_line = f.readline().decode()

注意文件必须以二进制方式打开,否则 无法从尾查找

原文由 Eugene Yarmash 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题