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使用MD5加密算法对字符串进行加密操作示例
Mar 30 Python
python编辑用户登入界面的实现代码
Jul 16 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
Nov 30 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
Jan 08 Python
TENSORFLOW变量作用域(VARIABLE SCOPE)
Jan 10 Python
Python多线程threading创建及使用方法解析
Jun 17 Python
python 多线程共享全局变量的优劣
Sep 24 Python
python 装饰器的使用示例
Oct 10 Python
python爬虫scrapy图书分类实例讲解
Nov 23 Python
python 实时调取摄像头的示例代码
Nov 25 Python
python3.9实现pyinstaller打包python文件成exe
Dec 13 Python
python基于tkinter制作m3u8视频下载工具
Apr 24 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中实现记住密码下次自动登录的例子
2014/11/06 PHP
php导入excel文件到mysql数据库的方法
2015/01/14 PHP
php上传中文文件名乱码问题处理方案
2015/02/03 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
PHP var关键字相关原理及使用实例解析
2020/07/11 PHP
js操作iframe的一些方法介绍
2013/06/25 Javascript
js中对象的声明方式以及数组的一些用法示例
2013/12/11 Javascript
JS实现div居中示例
2014/04/17 Javascript
原生Javascript封装的一个AJAX函数分享
2014/10/11 Javascript
javaScript的函数对象的声明详解
2015/02/06 Javascript
详解JavaScript ES6中的Generator
2015/07/28 Javascript
javascript实现数组中的内容随机输出
2015/08/11 Javascript
JavaScript实现多栏目切换效果
2016/12/12 Javascript
web前端vue filter 过滤器
2018/01/12 Javascript
vue移动端弹框组件的实例
2018/09/25 Javascript
详解从NodeJS搭建中间层再谈前后端分离
2018/11/13 NodeJs
jquery 时间戳转日期过程详解
2019/10/12 jQuery
Node 使用express-http-proxy 做api网关的实现
2020/10/15 Javascript
ES2020让代码更优美的运算符 (?.) (??)
2021/01/04 Javascript
python面向对象_详谈类的继承与方法的重载
2017/06/07 Python
Python 打印中文字符的三种方法
2018/08/14 Python
使用Python实现租车计费系统的两种方法
2018/09/29 Python
python简单实现矩阵的乘,加,转置和逆运算示例
2019/07/10 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
如何理解Python中包的引入
2020/05/29 Python
Python爬虫简单运用爬取代理IP的实现
2020/12/01 Python
使用HTML5 Canvas API控制字体的显示与渲染的方法
2016/03/24 HTML / CSS
欧克利英国官网:Oakley英国
2019/08/24 全球购物
计算机专业自荐信
2013/10/14 职场文书
铁路工务反思材料
2014/02/07 职场文书
2014社区健康教育工作总结
2014/12/16 职场文书
甲午风云观后感
2015/06/02 职场文书
幼儿园小班教育随笔
2015/08/14 职场文书
Nginx 负载均衡是什么以及该如何配置
2021/03/31 Servers
css3 文字断裂效果
2022/04/22 HTML / CSS
python实现一个简单的贪吃蛇游戏附代码
2022/06/28 Python