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


Posted in Python onFebruary 13, 2020

写一个类似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 相关文章推荐
python实现自动登录人人网并访问最近来访者实例
Sep 26 Python
python 打印对象的所有属性值的方法
Sep 11 Python
Python排序搜索基本算法之插入排序实例分析
Dec 11 Python
浅谈Django REST Framework限速
Dec 12 Python
Python实现base64编码的图片保存到本地功能示例
Jun 22 Python
python 利用jinja2模板生成html代码实例
Oct 10 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
Oct 28 Python
Python中用pyinstaller打包时的图标问题及解决方法
Feb 17 Python
Python定时任务APScheduler原理及实例解析
May 30 Python
使用OpenCV校准鱼眼镜头的方法
Nov 26 Python
学会Python数据可视化必须尝试这7个库
Jun 16 Python
Python 的演示平台支持 WSGI 接口的应用
Apr 20 Python
Python创建空列表的字典2种方法详解
Feb 13 #Python
python-docx文件定位读取过程(尝试替换)
Feb 13 #Python
Python 实现向word(docx)中输出
Feb 13 #Python
Python如何把多个PDF文件合并代码实例
Feb 13 #Python
python读取csv文件指定行的2种方法详解
Feb 13 #Python
Python类中self参数用法详解
Feb 13 #Python
python字符串下标与切片及使用方法
Feb 13 #Python
You might like
YB217、YB235、YB400浅听
2021/03/02 无线电
php访问查询mysql数据的三种方法
2006/10/09 PHP
PHP批量采集下载美女图片的实现代码
2013/06/03 PHP
php编写的简单页面跳转功能实现代码
2013/11/27 PHP
php实现的RSS生成类实例
2015/04/23 PHP
php使用PDO执行SQL语句的方法分析
2017/02/16 PHP
js函数般调用正则
2008/04/08 Javascript
jQuery UI Dialog控件中的表单无法正常提交的解决方法
2010/12/19 Javascript
javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)
2012/07/25 Javascript
纯js分页代码(简洁实用)
2013/11/05 Javascript
js中生成map对象的方法
2014/01/09 Javascript
js实例属性和原型属性示例详解
2014/11/23 Javascript
深入理解JavaScript系列(31):设计模式之代理模式详解
2015/03/03 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
微信QQ的二维码登录原理js代码解析
2016/06/23 Javascript
使用plupload自定义参数实现多文件上传
2016/07/19 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
2016/08/09 Javascript
jquery图片放大镜效果
2017/06/23 jQuery
JavaScript实现动态留言板
2020/03/16 Javascript
微信小程序实现watch监听
2020/06/04 Javascript
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
python使用Flask框架获取用户IP地址的方法
2015/03/21 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
2018/02/03 Python
浅析python中的迭代与迭代对象
2018/10/08 Python
python3中rank函数的用法
2019/11/27 Python
python opencv图片编码为h264文件的实例
2019/12/12 Python
python如何求圆的面积
2020/07/01 Python
python爬虫爬取网页数据并解析数据
2020/09/18 Python
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
2013/06/05 面试题
土木建筑学生自我评价
2014/01/14 职场文书
硕士研究生求职自荐信范文
2014/03/11 职场文书
2014年行政部工作总结
2014/11/19 职场文书
2015年实习班主任工作总结
2015/04/23 职场文书
廉政承诺书2015
2015/04/28 职场文书
高中团支书竞选稿
2015/11/21 职场文书
一文帮你理解PReact10.5.13源码
2021/04/03 Javascript