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 logging 日志轮转文件不删除问题的解决方法
Aug 02 Python
PyChar学习教程之自定义文件与代码模板详解
Jul 17 Python
Python探索之创建二叉树
Oct 25 Python
python编程使用selenium模拟登陆淘宝实例代码
Jan 25 Python
Python把csv数据写入list和字典类型的变量脚本方法
Jun 15 Python
详解爬虫被封的问题
Apr 23 Python
Python可变和不可变、类的私有属性实例分析
May 31 Python
学习Django知识点分享
Sep 11 Python
基于python调用psutil模块过程解析
Dec 20 Python
PyTorch 普通卷积和空洞卷积实例
Jan 07 Python
Python request使用方法及问题总结
Apr 26 Python
python实现二分查找算法
Sep 18 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/06/02 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
2019/09/10 PHP
Yii中特殊行为ActionFilter的使用方法示例
2020/10/18 PHP
由浅到深了解JavaScript类
2006/09/08 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
Node.js模块封装及使用方法
2016/03/06 Javascript
js事件委托和事件代理案例分享
2017/07/25 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
2017/12/22 Javascript
Vue完整项目构建(进阶篇)
2018/02/10 Javascript
JS复杂判断的更优雅写法代码详解
2018/11/07 Javascript
微信小程序时间选择插件使用详解
2018/12/28 Javascript
Vue内部渲染视图的方法
2019/09/02 Javascript
Bootstrap table 实现树形表格联动选中联动取消功能
2019/09/30 Javascript
jquery实现商品sku多属性选择功能(商品详情页)
2019/12/20 jQuery
python提取页面内url列表的方法
2015/05/25 Python
深入学习Python中的上下文管理器与else块
2017/08/27 Python
Python网络编程 Python套接字编程
2017/09/13 Python
python利用socketserver实现并发套接字功能
2018/01/26 Python
python实现浪漫的烟花秀
2019/01/30 Python
python整小时 整天时间戳获取算法示例
2019/02/20 Python
python模块和包的应用BASE_PATH使用解析
2019/12/14 Python
Python格式化输出--%s,%d,%f的代码解析
2020/04/29 Python
Python数据可视化实现多种图例代码详解
2020/07/14 Python
Python 操作 MySQL数据库
2020/09/18 Python
python 装饰器的基本使用
2021/01/13 Python
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
巴黎欧莱雅法国官网:L’Oreal Paris
2019/04/30 全球购物
大学生职业生涯规划书范文
2014/01/04 职场文书
供货协议书
2014/04/22 职场文书
建筑院校毕业生求职信
2014/06/13 职场文书
入党个人总结范文
2015/03/02 职场文书
出国导师推荐信
2015/03/25 职场文书
少先队工作总结2015
2015/05/13 职场文书
在职证明书模板
2015/06/15 职场文书
幼儿园秋季开学通知
2015/07/16 职场文书
CSS实现隐藏搜索框功能(动画正反向序列)
2021/07/21 HTML / CSS