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实现身份证号码解析
Sep 01 Python
python读取oracle函数返回值
Jul 18 Python
教你用Python写安卓游戏外挂
Jan 11 Python
有关Python的22个编程技巧
Aug 29 Python
python time.sleep()是睡眠线程还是进程
Jul 09 Python
对python中UDP,socket的使用详解
Aug 22 Python
Python中sorted()排序与字母大小写的问题
Jan 14 Python
python绘制玫瑰的实现代码
Mar 02 Python
Django模板标签{% for %}循环,获取制定条数据实例
May 14 Python
使用Keras建立模型并训练等一系列操作方式
Jul 02 Python
Django后端按照日期查询的方法教程
Feb 28 Python
Python数据分析之绘图和可视化详解
Jun 02 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 SplObjectStorage使用实例
2015/05/12 PHP
php简单的上传类分享
2016/05/15 PHP
javascript学习笔记(六) Date 日期类型
2012/06/19 Javascript
用html+css+js实现的一个简单的图片切换特效
2014/05/28 Javascript
JS定义网页表单提交(submit)的方法
2015/03/20 Javascript
JS获取checkbox的个数简单实例
2016/08/19 Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
2017/03/08 Javascript
JS遍历DOM文档树的方法实例详解
2018/04/03 Javascript
JS获取并处理php数组的方法实例分析
2018/09/04 Javascript
jQuery 同时获取多个标签的指定内容并储存为数组
2018/11/20 jQuery
vue项目中使用vue-i18n报错的解决方法
2019/01/13 Javascript
ES6的异步终极解决方案分享
2019/07/11 Javascript
[01:05:24]Ti4 冒泡赛第二天 iG vs NEWBEE 3
2014/07/15 DOTA
[02:26]2016国际邀请赛8月3日开战 中国军团出征西雅图
2016/08/02 DOTA
零基础写python爬虫之urllib2使用指南
2014/11/05 Python
python直接访问私有属性的简单方法
2016/07/25 Python
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
2018/04/02 Python
详解python 模拟豆瓣登录(豆瓣6.0)
2019/04/18 Python
通过python实现随机交换礼物程序详解
2019/07/10 Python
使用Windows批处理和WMI设置Python的环境变量方法
2019/08/14 Python
selenium+Chrome滑动验证码破解二(某某网站)
2019/12/17 Python
Python文件操作基础流程解析
2020/03/19 Python
清除canvas画布内容(点擦除+线擦除)
2020/08/12 HTML / CSS
牵手50新加坡:专为黄金岁月的单身人士而设的交友网站
2020/08/16 全球购物
如何判断一段程序是由C 编译程序还是由C++编译程序编译的
2013/08/04 面试题
可靠的数据流传输TCP
2016/03/15 面试题
大学生就业自我鉴定
2013/10/26 职场文书
观看《永远的雷锋》心得体会
2014/03/12 职场文书
办公室主任岗位承诺书
2014/05/29 职场文书
高中学生自我评价范文
2014/09/23 职场文书
社区个人对照检查材料(群众路线)
2014/09/26 职场文书
医院领导班子整改方案
2014/10/01 职场文书
区长工作作风个人整改措施
2014/10/01 职场文书
单位租房协议书样本
2014/10/30 职场文书
优秀教师主要事迹材料
2015/11/04 职场文书
只需要100行Python代码就可以实现的贪吃蛇小游戏
2021/05/27 Python