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 相关文章推荐
多线程爬虫批量下载pcgame图片url 保存为xml的实现代码
Jan 17 Python
python中pygame模块用法实例
Oct 09 Python
粗略分析Python中的内存泄漏
Apr 23 Python
详解python中的json的基本使用方法
Dec 21 Python
opencv改变imshow窗口大小,窗口位置的方法
Apr 02 Python
Python:二维列表下标互换方式(矩阵转置)
Dec 02 Python
python实现打砖块游戏
Feb 25 Python
150行python代码实现贪吃蛇游戏
Apr 24 Python
Python word文本自动化操作实现方法解析
Nov 05 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
Dec 01 Python
详解Python Celery和RabbitMQ实战教程
Jan 20 Python
Python趣味挑战之给幼儿园弟弟生成1000道算术题
May 28 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
分页显示Oracle数据库记录的类之二
2006/10/09 PHP
PHP CLI模式下的多进程应用分析
2013/06/03 PHP
phpStudy访问速度慢和启动失败的解决办法
2015/11/19 PHP
js实现百度联盟中一款不错的图片切换效果完整实例
2015/03/04 Javascript
ECMAScript6块级作用域及新变量声明(let)
2015/06/12 Javascript
JavaScript电子时钟倒计时
2016/01/09 Javascript
Angularjs自定义指令Directive详解
2017/05/27 Javascript
静态页面实现 include 引入公用代码的示例
2017/09/25 Javascript
jquery写出PC端轮播图实例
2018/01/26 jQuery
Vue常见面试题整理【值得收藏】
2018/09/20 Javascript
Mint UI组件库CheckList使用及踩坑总结
2018/12/20 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
利用Python获取操作系统信息实例
2016/09/02 Python
python opencv设置摄像头分辨率以及各个参数的方法
2018/04/02 Python
Flask框架URL管理操作示例【基于@app.route】
2018/07/23 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
python opencv 图像拼接的实现方法
2019/06/27 Python
python实现人机五子棋
2020/03/25 Python
python3.7.3版本和django2.2.3版本是否可以兼容
2020/09/01 Python
Python wordcloud库安装方法总结
2020/12/31 Python
可打印的优惠券、杂货和优惠券代码:Coupons.com
2018/06/12 全球购物
Eyeko美国:屡获殊荣的睫毛膏、眼线笔和眉妆
2018/07/05 全球购物
Harrods美国:英国最大的百货公司
2018/11/04 全球购物
英国最受欢迎的价格比较网站之一:MoneySuperMarket
2018/12/19 全球购物
德国价格合理的品牌商品购物网站:averdo
2019/03/21 全球购物
巴塞罗那观光通票:Barcelona Pass
2019/10/30 全球购物
人力资源专员自我评价怎么写
2013/09/19 职场文书
加多宝凉茶广告词
2014/03/18 职场文书
优秀语文教师事迹
2014/05/18 职场文书
慰问信格式
2015/02/14 职场文书
2015年高校教师个人工作总结
2015/05/25 职场文书
公司管理制度范本
2015/08/03 职场文书
HR在给员工开具离职证明时,需要注意哪些问题?
2019/07/03 职场文书
班组长如何制订适合本班组的工作计划?
2019/07/10 职场文书
Python实现视频中添加音频工具详解
2021/12/06 Python