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常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
Aug 25 Python
python编写Logistic逻辑回归
Dec 30 Python
python通过百度地图API获取某地址的经纬度详解
Jan 28 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
Feb 11 Python
python Opencv将图片转为字符画
Feb 19 Python
python3.4实现邮件发送功能
May 28 Python
python 根据时间来生成唯一的字符串方法
Jan 14 Python
selenium+python自动化测试之多窗口切换
Jan 23 Python
详解Python Opencv和PIL读取图像文件的差别
Dec 27 Python
TensorFlow MNIST手写数据集的实现方法
Feb 05 Python
Python接口测试数据库封装实现原理
May 09 Python
深度学习tensorflow基础mnist
Apr 14 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
为IP查询添加GOOGLE地图功能的代码
2010/08/08 PHP
UCenter 批量添加用户的php代码
2012/07/17 PHP
PHP高级编程实例:编写守护进程
2014/09/02 PHP
thinkphp实现分页显示功能
2016/12/03 PHP
PHP实现数组根据某个单元字段排序操作示例
2018/08/01 PHP
JavaScript 学习笔记(十三)Dom创建表格
2010/01/21 Javascript
关于COOKIE个数与大小的问题
2011/01/17 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
2013/12/11 Javascript
鼠标悬浮停留三秒后自动显示大图js代码
2014/09/09 Javascript
JavaScript中的原型链prototype介绍
2014/12/30 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
2015/05/18 Javascript
jQuery实现日期联动效果实例
2016/07/26 Javascript
js实现省份下拉菜单效果
2017/02/15 Javascript
jQuery插件echarts实现的单折线图效果示例【附demo源码下载】
2017/03/04 Javascript
微信小程序使用Promise简化回调
2018/02/06 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
2018/10/29 Javascript
Vue.js 中的 v-cloak 指令及使用详解
2018/11/19 Javascript
使用jquery模拟a标签的click事件无法实现跳转的解决
2018/12/04 jQuery
Paypal支付不完全指北
2020/06/04 Javascript
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
Python入门_条件控制(详解)
2017/05/16 Python
python list是否包含另一个list所有元素的实例
2018/05/04 Python
使用Python获取网段IP个数以及地址清单的方法
2018/11/01 Python
解决pycharm remote deployment 配置的问题
2019/06/27 Python
Python实现银行账户资金交易管理系统
2020/01/03 Python
python中plt.imshow与cv2.imshow显示颜色问题
2020/07/16 Python
CSS3绘制超炫的上下起伏波动进度加载动画
2016/04/21 HTML / CSS
美国顶级防滑鞋:Shoes For Crews
2017/03/27 全球购物
一套英文Java笔试题面试题
2016/04/21 面试题
优质服务演讲稿
2014/05/14 职场文书
学校做一个有道德的人活动方案
2014/08/23 职场文书
学习十八大的心得体会
2014/09/01 职场文书
后备干部推荐材料
2014/12/24 职场文书
业务员岗位职责
2015/02/03 职场文书
《金钱的魔力》教学反思
2016/02/20 职场文书
小程序实现悬浮按钮的全过程记录
2021/10/16 HTML / CSS