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正则表达式 re模块使用说明
May 19 Python
使用Python导出Excel图表以及导出为图片的方法
Nov 07 Python
python实现RSA加密(解密)算法
Feb 17 Python
Eclipse中Python开发环境搭建简单教程
Mar 23 Python
python numpy 一维数组转变为多维数组的实例
Jul 02 Python
python使用numpy读取、保存txt数据的实例
Oct 14 Python
python 为什么说eval要慎用
Mar 26 Python
python 多维高斯分布数据生成方式
Dec 09 Python
Python 使用Opencv实现目标检测与识别的示例代码
Sep 08 Python
Django contrib auth authenticate函数源码解析
Nov 12 Python
Python3+SQLAlchemy+Sqlite3实现ORM教程
Feb 16 Python
python APScheduler执行定时任务介绍
Apr 19 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教程 预定义变量
2009/10/23 PHP
PHP序列化/对象注入漏洞分析
2016/04/18 PHP
php面向对象值单例模式
2016/05/03 PHP
php数组冒泡排序算法实例
2016/05/06 PHP
Yii2实现log输出到file及database的方法
2016/11/12 PHP
php正则提取html图片(img)src地址与任意属性的方法
2017/02/08 PHP
Laravel使用原生sql语句并调用的方法
2019/10/09 PHP
js的闭包的一个示例说明
2008/11/18 Javascript
D3.js 从P元素的创建开始(显示可加载数据)
2014/10/30 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
基于gulp合并压缩Seajs模块的方式说明
2016/06/14 Javascript
AngularJS改变元素显示状态
2017/04/20 Javascript
js实现简单的打印表格
2020/01/15 Javascript
基于javascript实现日历功能原理及代码实例
2020/05/07 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
2020/12/10 Javascript
详解Python中time()方法的使用的教程
2015/05/22 Python
浅谈Python的Django框架中的缓存控制
2015/07/24 Python
windows上安装Anaconda和python的教程详解
2017/03/28 Python
Python随机生成均匀分布在三角形内或者任意多边形内的点
2017/12/14 Python
pycharm设置当前工作目录的操作(working directory)
2020/02/14 Python
matlab中imadjust函数的作用及应用举例
2020/02/27 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
Python RabbitMQ实现简单的进程间通信示例
2020/07/02 Python
Python如何重新加载模块
2020/07/29 Python
中国酒类在线零售网站:酒仙网
2016/08/20 全球购物
彪马俄罗斯官网:PUMA俄罗斯
2019/07/13 全球购物
安德玛加拿大官网:Under Armour加拿大
2019/10/02 全球购物
LUISAVIAROMA德国官网:时尚奢侈品牌购物网站
2020/11/12 全球购物
护理专业毕业生推荐信
2013/10/31 职场文书
电气工程及自动化专业自荐书范文
2013/12/18 职场文书
演讲稿祖国在我心中
2014/05/04 职场文书
2015年全民国防教育日活动总结
2015/03/23 职场文书
2015年化验室工作总结
2015/04/23 职场文书
公开致歉信
2019/06/24 职场文书
SQL写法--行行比较
2021/08/23 SQL Server
Python编程中Python与GIL互斥锁关系作用分析
2021/09/15 Python