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 相关文章推荐
在Linux下使用Python的matplotlib绘制数据图的教程
Jun 11 Python
Python聊天室实例程序分享
Jan 05 Python
python爬虫的工作原理
Mar 05 Python
Python3简单实例计算同花的概率代码
Dec 06 Python
Python使用Tkinter实现机器人走迷宫
Jan 22 Python
python 读入多行数据的实例
Apr 19 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
Aug 04 Python
Django ORM 常用字段与不常用字段汇总
Aug 09 Python
Python操作dict时避免出现KeyError的几种解决方法
Sep 20 Python
Python制作表白爱心合集
Jan 22 Python
python接口测试返回数据为字典取值方式
Feb 12 Python
pytorch中的torch.nn.Conv2d()函数图文详解
Feb 28 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
php中的常用魔术方法总结
2013/08/02 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
2019/10/30 PHP
javascript EXCEL 操作类代码
2009/07/30 Javascript
jQuery简单实现网页选项卡特效
2014/11/24 Javascript
Javascript中的包装类型介绍
2015/04/02 Javascript
JavaScript AOP编程实例
2015/06/16 Javascript
JavaScript+CSS实现的可折叠二级菜单实例
2016/02/29 Javascript
dul无法加载bootstrap实现unload table/user恢复
2016/09/29 Javascript
jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
2016/11/09 Javascript
Bootstrap响应式表格详解
2017/05/23 Javascript
Vue父子模版传值及组件传值的三种方法
2017/11/27 Javascript
vue项目中使用lib-flexible解决移动端适配的问题解决
2018/08/23 Javascript
NodeJS服务器实现gzip压缩的示例代码
2018/10/12 NodeJs
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
2019/05/13 jQuery
vue使用混入定义全局变量、函数、筛选器的实例代码
2019/07/29 Javascript
微信JSSDK实现打开摄像头拍照再将相片保存到服务器
2019/11/15 Javascript
jQuery加PHP实现图片上传并提交的示例代码
2020/07/16 jQuery
利用Vue的v-for和v-bind实现列表颜色切换
2020/07/17 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
python实现的阳历转阴历(农历)算法
2014/04/25 Python
Python使用turtule画五角星的方法
2015/07/09 Python
图文讲解选择排序算法的原理及在Python中的实现
2016/05/04 Python
利用Python脚本生成sitemap.xml的实现方法
2017/01/31 Python
python实现顺时针打印矩阵
2019/03/02 Python
使用python实现kNN分类算法
2019/10/16 Python
Pandas 缺失数据处理的实现
2019/11/04 Python
Django数据统计功能count()的使用
2020/11/30 Python
英国复古和经典球衣网站:Vintage Football Shirts
2018/10/05 全球购物
夜大毕业自我鉴定
2013/10/11 职场文书
宿舍使用违章电器检讨书
2014/01/12 职场文书
创业女性典型材料
2014/05/02 职场文书
幼儿发展评估方案
2014/06/11 职场文书
市场营销专业毕业生求职信
2014/07/21 职场文书
2019年英语版感谢信(8篇)
2019/09/29 职场文书
Golang 编译成DLL文件的操作
2021/05/06 Golang