python打印文件的前几行或最后几行教程

 更新时间:2020年02月13日 15:40:58   作者:william_djj  
今天小编就为大家分享一篇python打印文件的前几行或最后几行教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

写一个类似linux head的小工具,在window下用。

head.py 

# -*- coding: UTF-8 -*-
#!/usr/bin/python
# by Jakcing 2019.02.17
# print first n lines or last n lines in big file 
 
 
import sys
import getopt
import linecache
 
 
VERSION="1.1"
 
def get_line_count(filename):
 line_count = 0
 file = open(filename,'r+', encoding='utf-8')
 while True:
 buffer = file.read(8192 * 1024 )
 if not buffer:
  break
 line_count += buffer.count('\n')
 file.close()
 return line_count
 
def read_head_line(flist, line_num):
 for file_name in flist:
 print("===%s===" % file_name)
 f = open(file_name, 'r', encoding='utf-8')
 if(f):
  for i in range(line_num):
  print(f.readline(), end='')
 
 
 
def read_last_line(flist, line_num):
 
 for file_name in flist:
 
 linecache.clearcache()
 line_count = get_line_count(file_name)
 print('===%s=== line count total: %d' % (file_name, line_count))
 line_count = line_count - line_num +1
 print('===%s=== line %d to end' % (file_name, line_count))
 
 
 for i in range(line_num):
  last_line = linecache.getline(file_name, line_count) #从第line_count行读起
  print('line[%d]:%s' % (line_count, last_line), end='')
  line_count += 1
 
 
 
try:
 opts, args = getopt.getopt(sys.argv[1:], "hvn:t:", ["help", "output=", "numline=", "tail=", "version"])
except getopt.GetoptError:
  print("argv error,please input")
 
for cmd, arg in opts:
 if cmd in ("-h", "--help"):
 print("usage: head.py -n number filename \nor head.py -t number filename")
 sys.exit()
 elif cmd in ("-n", "--numline"): #打印文件开头的line_num行
 line_num=int(arg)
 file_names=args[:]
 read_head_line(file_names, line_num)
 elif cmd in ("-t", "--tail"): #打印文件结尾的line_num行
 line_num=int(arg)
 file_names=args[:]
 read_last_line(file_names, line_num)
 
 elif cmd in ("-v", "--version"):
 print("%s %s" % (sys.argv[0], VERSION))
 
sys.exit()

以上这篇python打印文件的前几行或最后几行教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python中利用pyqt5制作指针钟表显示实时时间(指针时钟)

    Python中利用pyqt5制作指针钟表显示实时时间(指针时钟)

    这篇文章主要介绍了Python中利用pyqt5制作指针钟表显示实时时间(动态指针时钟),本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • 探究python中open函数的使用

    探究python中open函数的使用

    这篇文章主要为大家详细介绍了python中open函数的使用方法,对python文件方法open进行深入研究,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • python实现井字棋游戏

    python实现井字棋游戏

    这篇文章主要为大家详细介绍了python实现井字棋游戏的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • Python tkinter库绘制春联和福字的示例详解

    Python tkinter库绘制春联和福字的示例详解

    马上要过年了,这篇文章将用到Python中的tkinter库来写一副春联&福字送给大家。文中的实现方法讲解详细,感兴趣的小伙伴可以试一试
    2022-01-01
  • 关于Python函数参数的进阶用法

    关于Python函数参数的进阶用法

    这篇文章主要给大家分享的是Python函数参数的进阶用法,Python函数的参数根据函数 在调用时 传参的形式分为关键字参数和位置参数,下面文章小编就来介绍相关资料,需要的朋友可以参考一下
    2021-10-10
  • pandas 数据索引与选取的实现方法

    pandas 数据索引与选取的实现方法

    这篇文章主要介绍了pandas 数据索引与选取的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • pydantic-resolve嵌套数据结构生成LoaderDepend管理contextvars

    pydantic-resolve嵌套数据结构生成LoaderDepend管理contextvars

    这篇文章主要为大家介绍了pydantic-resolve解决嵌套数据结构生成LoaderDepend管理contextvars的使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪<BR>
    2023-04-04
  • 对python中的pop函数和append函数详解

    对python中的pop函数和append函数详解

    今天小编就为大家分享一篇对python中的pop函数和append函数详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • python一些性能分析的技巧

    python一些性能分析的技巧

    这篇文章主要介绍了python一些性能分析的技巧,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-08-08
  • Python fileinput模块使用介绍

    Python fileinput模块使用介绍

    这篇文章主要介绍了Python fileinput模块使用方法,需要的朋友可以参考下
    2014-11-11

最新评论