python取文件最后几行,python提取前几行数据

本文目录一览:

python 怎么读取文件每行的开头和末尾?

text=”””

16 wyp1 23 131212121212

17 wyp2 24 134535353535

18 wyp3 25 132453535353

19 wyp4 26 154243434355

20 wyp 25 13188888888888

21 test 30 13888888888888

22 zs 34 899314121

“””

text_arr = text.split(“\n”)#根据换行符拆分字符串

# print(text_arr)

#content_dict = {}#字典,用来装结果

for i in text_arr:

if i == “”:#如果这个内容是空的,则略过,继续下一个

continue

i_arr = i.split(” “)#根据空格拆分字符串

content_dict[i_arr[0]] = i_arr[-1]#将字符串列表的第一个位置作为键,最后一个位置的内容作为值

print(content_dict)

两次print的结果

ps:图片好像不是高清的…….

如何用python最快的获取大文件的最后几行

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

#!/usr/bin/env python

import os

import sys

def get_last_n_lines(logfile, n):

blk_size_max = 4096

n_lines = []

with open(logfile, ‘rb’) as fp:

fp.seek(0, os.SEEK_END)

cur_pos = fp.tell()

while cur_pos 0 and len(n_lines) n:

blk_size = min(blk_size_max, cur_pos)

fp.seek(cur_pos – blk_size, os.SEEK_SET)

blk_data = fp.read(blk_size)

assert len(blk_data) == blk_size

lines = blk_data.split(‘\n’)

# adjust cur_pos

if len(lines) 1 and len(lines[0]) 0:

n_lines[0:0] = lines[1:]

cur_pos -= (blk_size – len(lines[0]))

else:

n_lines[0:0] = lines

cur_pos -= blk_size

fp.seek(cur_pos, os.SEEK_SET)

if len(n_lines) 0 and len(n_lines[-1]) == 0:

del n_lines[-1]

return n_lines[-n:]

def main():

if len(sys.argv) != 3:

sys.exit(‘usage: %s logfile n_lines’ % sys.argv[0])

for line in get_last_n_lines(sys.argv[1], int(sys.argv[2])):

print line

if __name__ == ‘__main__’:

main()

Linux平台有一个tail命令,tail -f filename.log 就会打印文件最后新增加的内容

python 怎样或读取一个文件的最后一行

有两种情况,

1,文件比较大时,一行一行循环直到最后一行,读取最后一行;

targetLine = “”;

lineNo = 0;  

while 1:

    mLine = file.readline();

    if not mLine:

        break;

    lineNo += 1;

    if (linecount == lineNO):

        targetLine = mLine;

2, 文件比较小,直接读取全文,取最后一行数据。

targetLine = “”;  

mLines = file.read();

targetLine = mLines[-1];

filelineno( ) 

Return the line number in the current file. Before the first line has been read, returns 0. After the last line of the last file has been read, returns the line number of that line within the file.

如何用python获取文件的最后一行,文件可能会比较大

#!/usr/bin/env python

import os

import sys

def get_last_n_lines(logfile, n):

    blk_size_max = 4096

    n_lines = []

    with open(logfile, ‘rb’) as fp:

        fp.seek(0, os.SEEK_END)

        cur_pos = fp.tell()

        while cur_pos  0 and len(n_lines)  n:

            blk_size = min(blk_size_max, cur_pos)

            fp.seek(cur_pos – blk_size, os.SEEK_SET)

            blk_data = fp.read(blk_size)

            assert len(blk_data) == blk_size

            lines = blk_data.split(‘\n’)

            # adjust cur_pos

            if len(lines)  1 and len(lines[0])  0:

                n_lines[0:0] = lines[1:]

                cur_pos -= (blk_size – len(lines[0]))

            else:

                n_lines[0:0] = lines

                cur_pos -= blk_size

            fp.seek(cur_pos, os.SEEK_SET)

    if len(n_lines)  0 and len(n_lines[-1]) == 0:

        del n_lines[-1]

    return n_lines[-n:]

def main():

    if len(sys.argv) != 3:

        sys.exit(‘usage: %s logfile n_lines’ % sys.argv[0])

    for line in get_last_n_lines(sys.argv[1], int(sys.argv[2])):

        print line

if __name__ == ‘__main__’:

    main()

Linux平台有一个tail命令,tail -f filename.log 就会打印文件最后新增加的内容

 

这个也可以

如何利用python读取特定目录下的特定文件的倒数两行

读取最后2行,别信那些用readlines()的答案。那些答案,丢给你个16GB的文件就死翘翘了。老老实实用tail命令的实现方法:

用os.seek跳转到文件末尾,os.tell判断文件大小

设置个合适的buf size,假设是1024。循环从文件末尾os.seek往回跳buf size,判断读取的内容里回车符的数量,累加回车符数量

当回车符数量大于等于2的时候,停止循环。确定倒数第二个回车符的位置,os.seek到那个位置,输出到文件末尾

这个实现还是有坑。如果文件一直在增长,那么『最后两行』应该是程序执行当时文件的最后两行,步骤3里应该是『从倒数第二个回车符输出到步骤1中获取的文件大小位置』

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/292001.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-25 14:07
下一篇 2024-12-25 14:07

相关推荐

  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29

发表回复

登录后才能评论