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命名空间详解
Aug 18 Python
利用django如何解析用户上传的excel文件
Jul 24 Python
Python读取文件内容的三种常用方式及效率比较
Oct 07 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
Jul 02 Python
Python中利用LSTM模型进行时间序列预测分析的实现
Jul 26 Python
通过python扫描二维码/条形码并打印数据
Nov 14 Python
python实现字典嵌套列表取值
Dec 16 Python
python列表生成器迭代器实例解析
Dec 19 Python
python继承threading.Thread实现有返回值的子类实例
May 02 Python
Python3.7下安装pyqt5的方法步骤(图文)
May 12 Python
Python 高效编程技巧分享
Sep 10 Python
详解基于python的图像Gabor变换及特征提取
Oct 26 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获取数组中某元素的位置及array_keys函数应用
2013/01/29 PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
2013/12/25 PHP
ThinkPHP之foreach标签使用概述
2014/06/30 PHP
再推荐十款免费的php开发工具
2015/11/09 PHP
PHP依赖注入原理与用法分析
2018/08/21 PHP
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
jqPlot Option配置对象详解
2009/07/25 Javascript
JQuery 表格操作(交替显示、拖动表格行、选择行等)
2009/07/29 Javascript
javascript Object与Function使用
2010/01/11 Javascript
一个获取第n个元素节点的js函数
2014/09/02 Javascript
js实现照片墙功能实例
2015/02/05 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
轻松理解JavaScript闭包
2017/03/14 Javascript
Vue单文件组件基础模板小结
2017/08/10 Javascript
React Native之TextInput组件解析示例
2017/08/22 Javascript
实例分析vue循环列表动态数据的处理方法
2018/09/28 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
简述vue路由打开一个新的窗口的方法
2018/11/29 Javascript
小程序开发中如何使用async-await并封装公共异步请求的方法
2019/01/20 Javascript
解决node.js含有%百分号时发送get请求时浏览器地址自动编码的问题
2019/11/20 Javascript
[46:14]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第一场 12.11
2020/12/16 DOTA
python登录豆瓣并发帖的方法
2015/07/08 Python
python批量制作雷达图的实现方法
2016/07/26 Python
Python端口扫描简单程序
2016/11/10 Python
Python正则匹配判断手机号是否合法的方法
2020/12/09 Python
python实现生成字符串大小写字母和数字的各种组合
2019/01/01 Python
500行python代码实现飞机大战
2020/04/24 Python
HTML5 Canvas实现平移/放缩/旋转deom示例(附截图)
2013/07/04 HTML / CSS
JD Sports法国:英国篮球和运动时尚的领导者
2017/09/28 全球购物
奥林匹亚体育:Olympia Sports
2020/12/30 全球购物
酒店副总岗位职责
2013/12/24 职场文书
大学旷课检讨书
2014/01/28 职场文书
残疾人创业典型事迹
2014/02/01 职场文书
创先争优承诺书
2015/01/20 职场文书
担保书格式
2015/01/20 职场文书
Python基础之tkinter图形化界面学习
2021/04/29 Python