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中time模块和datetime模块的用法示例
Feb 28 Python
Python有序字典简单实现方法示例
Sep 28 Python
Python简单计算数组元素平均值的方法示例
Dec 26 Python
Python函数的参数常见分类与用法实例详解
Mar 30 Python
python标准库os库的函数介绍
Feb 12 Python
python实现飞船游戏的纵向移动
Apr 24 Python
Python while true实现爬虫定时任务
Jun 08 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
Jul 13 Python
python设置表格边框的具体方法
Jul 17 Python
虚拟机下载python是否需要联网
Jul 27 Python
详解如何修改python中字典的键和值
Sep 29 Python
python 实现有道翻译功能
Feb 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中定时计划任务的实现原理
2013/01/08 PHP
PHP 断点续传实例详解
2017/11/11 PHP
Laravel框架模板继承操作示例
2018/06/11 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
删除重复数据的算法
2006/11/23 Javascript
用YUI做了个标签浏览效果
2007/02/20 Javascript
JS字符串函数扩展代码
2011/09/13 Javascript
基于jquery的bankInput银行卡账号格式化
2012/08/22 Javascript
jquery事件与函数的使用介绍
2013/09/29 Javascript
javascript中substring()、substr()、slice()的区别
2015/08/30 Javascript
JavaScript Date对象详解
2016/03/01 Javascript
Immutable 在 JavaScript 中的应用
2016/05/02 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
vue的事件绑定与方法详解
2017/08/16 Javascript
jQuery中extend函数简单用法示例
2017/10/11 jQuery
Vue.directive 自定义指令的问题小结
2018/03/04 Javascript
Openlayers+EasyUI Tree动态实现图层控制
2020/09/28 Javascript
解决Vue-cli无法编译es6的问题
2020/10/30 Javascript
vue 实现element-ui中的加载中状态
2020/11/11 Javascript
原生js实现放大镜组件
2021/01/22 Javascript
放弃 Python 转向 Go语言有人给出了 9 大理由
2017/10/20 Python
Python3多线程爬虫实例讲解代码
2018/01/05 Python
python将字符串以utf-8格式保存在txt文件中的方法
2018/10/30 Python
python标记语句块使用方法总结
2019/08/05 Python
python修改linux中文件(文件夹)的权限属性操作
2020/03/05 Python
利用python绘制正态分布曲线
2021/01/04 Python
HTML5有哪些新特征
2015/12/01 HTML / CSS
美国领先的商务贺卡出版商:The Gallery Collection
2018/02/13 全球购物
大型车展策划方案
2014/02/01 职场文书
内刊编辑求职自荐书范文
2014/02/19 职场文书
仓库管理员岗位职责
2014/03/19 职场文书
优秀的应届生自荐信
2014/05/23 职场文书
党员批评与自我批评材料
2014/10/14 职场文书
2014年乡镇纪委工作总结
2014/12/19 职场文书
2015年酒店服务员工作总结
2015/05/18 职场文书
2016年过年放假安排通知
2015/08/18 职场文书