Python 读取文件首行和最后一行

Posted Hank.Yoon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 读取文件首行和最后一行相关的知识,希望对你有一定的参考价值。

常规方法:从前往后依次读取

步骤:open打开文件。 读取文件,把文件所有行读入内存。 遍历所有行,提取指定行的数据。

优点:简单,方便 缺点:当文件大了以后时间太慢,无法忍受

fname = \'test.html\'
with open(fname, \'r\', encoding=\'utf-8\') as f:  # 打开文件
    lines = f.readlines()  # 读取所有行
    first_line = lines[0]  # 取第一行
    last_line = lines[-1]  # 取最后一行
    print(\'文件\' + fname + \'第一行为:\'+ first_line)
    print(\'文件\' + fname + \'最后一行为:\' + last_line)

推荐方法:

步骤:open打开日志文件。 移动文件读取指针到文件末尾。 从后往前移动指针直到合适的位置。 读取文件,提取指定行的数据。

优点:时间相对固定,适合处理大文件

with open(fname, \'rb\') as f:  # 打开文件
    # 在文本文件中,没有使用b模式选项打开的文件,只允许从文件头开始,只能seek(offset,0)
    first_line = f.readline()  # 取第一行
    offset = -50  # 设置偏移量
    while True:
        """
        file.seek(off, whence=0):从文件中移动off个操作标记(文件指针),正往结束方向移动,负往开始方向移动。
        如果设定了whence参数,就以whence设定的起始位为准,0代表从头开始,1代表当前位置,2代表文件最末尾位置。
        """
        f.seek(offset, 2)  # seek(offset, 2)表示文件指针:从文件末尾(2)开始向前50个字符(-50)
        lines = f.readlines()  # 读取文件指针范围内所有行
        if len(lines) >= 2:  # 判断是否最后至少有两行,这样保证了最后一行是完整的
            last_line = lines[-1]  # 取最后一行
            break
        # 如果off为50时得到的readlines只有一行内容,那么不能保证最后一行是完整的
        # 所以off翻倍重新运行,直到readlines不止一行
        offset *= 2
    print(\'文件\' + fname + \'第一行为:\' + first_line.decode())
    print(\'文件\' + fname + \'最后一行为:\' + last_line.decode())

 

mysql数据库表里首行和末行的取得方法

取得mysql数据库中表里的第一行:

  SELECT mg.* FROM MaxGCC mg ORDER BY mg.JOBID ASC limit 0, 1;

取得mysql数据库中表里的最后一行:

  SELECT mg.* FROM MaxGCC mg ORDER BY mg.JOBID desc limit 0, 1;



以上是关于Python 读取文件首行和最后一行的主要内容,如果未能解决你的问题,请参考以下文章

Python读取文件的最后一行(非空行)

excel如何冻结首行和最后1行?

mysql数据库表里首行和末行的取得方法

Excel小技巧:表格如何同时显示首行和尾行?

Linux环境下文本处理,提取需要的内容?

Excel里冻结窗口是否只能冻结首行或首列?