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的urllib模块显示下载进度示例
Jan 17 Python
Python中列表与元组的乘法操作示例
Feb 10 Python
对python 合并 累加两个dict的实例详解
Jan 21 Python
Python3获取拉勾网招聘信息的方法实例
Apr 03 Python
让Python脚本暂停执行的几种方法(小结)
Jul 11 Python
解决Python3 抓取微信账单信息问题
Jul 19 Python
pygame实现俄罗斯方块游戏(对战篇1)
Oct 29 Python
Python实现i人事自动打卡的示例代码
Jan 09 Python
python数据预处理方式 :数据降维
Feb 24 Python
关于tensorflow softmax函数用法解析
Jun 30 Python
Python数据模型与Python对象模型的相关总结
Jan 26 Python
Python 中 Shutil 模块详情
Nov 11 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
在PHP3中实现SESSION的功能(三)
2006/10/09 PHP
PHP解决URL中文GBK乱码问题的两种方法
2014/06/03 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
2020/08/03 PHP
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
JS date对象的减法处理实现代码
2010/12/28 Javascript
动态加载script文件的两种方法
2013/08/15 Javascript
MyEclipse取消验证Js的两种方法
2013/11/14 Javascript
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
JavaScript小技巧整理
2015/12/30 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
jQuery CSS3自定义美化Checkbox实现代码
2016/05/12 Javascript
vue.js入门教程之计算属性
2016/09/01 Javascript
Windows下安装 node 的版本控制工具 nvm
2020/02/06 Javascript
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
Python 正则表达式(转义问题)
2014/12/15 Python
Mac中Python 3环境下安装scrapy的方法教程
2017/10/26 Python
python中的字典操作及字典函数
2018/01/03 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
python使用pil库实现图片合成实例代码
2018/01/20 Python
python 显示数组全部元素的方法
2018/04/19 Python
python 实现登录网页的操作方法
2018/05/11 Python
在交互式环境中执行Python程序过程详解
2019/07/12 Python
Python 类属性与实例属性,类对象与实例对象用法分析
2019/09/20 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
2020/03/12 Python
Python爬取股票信息,并可视化数据的示例
2020/09/26 Python
Docker如何部署Python项目的实现详解
2020/10/26 Python
CSS3 实现图形下落动画效果
2020/11/13 HTML / CSS
苹果中国官方网站:Apple中国
2016/07/22 全球购物
城野医生官方海外旗舰店:风靡亚洲毛孔收敛水
2018/04/26 全球购物
《秋姑娘的信》教学反思
2014/02/28 职场文书
数学教研活动总结
2014/07/02 职场文书
2015年妇女工作总结
2015/05/14 职场文书
2019年特色火锅店的创业计划书模板
2019/08/28 职场文书
八年级作文之一起的走过日子
2019/09/17 职场文书