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 相关文章推荐
Tensorflow 利用tf.contrib.learn建立输入函数的方法
Feb 08 Python
深入理解Python爬虫代理池服务
Feb 28 Python
Python3.5基础之NumPy模块的使用图文与实例详解
Apr 24 Python
使用python对多个txt文件中的数据进行筛选的方法
Jul 10 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
Aug 12 Python
python画微信表情符的实例代码
Oct 09 Python
使用Python求解带约束的最优化问题详解
Feb 11 Python
用Python在Excel里画出蒙娜丽莎的方法示例
Apr 28 Python
python批量处理多DNS多域名的nslookup解析实现
Jun 28 Python
Matplotlib 折线图plot()所有用法详解
Jul 28 Python
Python可以用来做什么
Nov 23 Python
python3 删除所有自定义变量的操作
Apr 08 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
Mysql数据库操作类( 1127版,提供源码下载 )
2010/12/02 PHP
php中实现精确设置session过期时间的方法
2014/07/17 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
php实现数组纵向转横向并过滤重复值的方法分析
2017/05/29 PHP
php精度计算的问题解析
2019/06/21 PHP
用js实现的抽象CSS圆角效果!!
2007/05/03 Javascript
mapper--图片热点区域高亮组件官方站点
2007/12/22 Javascript
Javascript string 扩展库代码
2010/04/09 Javascript
jQuery队列控制方法详解queue()/dequeue()/clearQueue()
2010/12/02 Javascript
httpclient模拟登陆具体实现(使用js设置cookie)
2013/12/11 Javascript
基于NodeJS的前后端分离的思考与实践(二)模版探索
2014/09/26 NodeJs
BootStrap响应式导航条实例介绍
2016/05/06 Javascript
微信小程序 setData的使用方法详解
2017/04/20 Javascript
angularJS 发起$http.post和$http.get请求的实现方法
2017/05/18 Javascript
Vue学习笔记之表单输入控件绑定
2017/09/05 Javascript
Vue-cli 使用json server在本地模拟请求数据的示例代码
2017/11/02 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
AngularJs分页插件使用详解
2018/06/30 Javascript
node.js到底要不要加分号浅析
2018/07/11 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
vue elementUI table 自定义表头和行合并的实例代码
2019/05/22 Javascript
vue封装swiper代码实例解析
2019/10/08 Javascript
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
实例讲解React 组件生命周期
2020/07/08 Javascript
Python使用smtp和pop简单收发邮件完整实例
2018/01/09 Python
Python深度优先算法生成迷宫
2018/01/22 Python
使用Python AIML搭建聊天机器人的方法示例
2018/07/09 Python
Flask模板引擎之Jinja2语法介绍
2019/06/26 Python
使用python turtle画高达
2020/01/19 Python
html5简介及新增功能介绍
2020/05/18 HTML / CSS
Android面试题附答案
2014/12/08 面试题
找工作最新求职信
2013/12/22 职场文书
师生聚会感言
2014/01/26 职场文书
函授本科自我鉴定
2014/02/04 职场文书
退休欢送会致辞
2015/07/31 职场文书