python打印文件的前几行或最后几行教程

写一个类似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打印文件的前几行或最后几行教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python连接打印机实现打印文档、图片、pdf文件等功能

    引言 python连接打印机进行打印,可能根据需求的不同,使用不同的函数模块. 如果你只是简单的想打印文档,比如office文档,你可以使用ShellExecute方法,对于微软office的文档.pdf.txt等有用,你可以尝试下: 如果你输入某些数据,文字信息,就想直接把它发送给打印机打印,那么可以尝试使用win32print: 如果你有一张图片,那么你可以结合python的Python Imaging Library(PIL)和win32ui模块进行打印: 普通打印 ShellExecut

  • python 扩展print打印文件路径和当前时间信息的实例代码

    pinrt函数我们经常使用,但是有时候python自带的print函数打印的信息不够详细,我们可以扩展一下,打印更多的信息,例如程序文件绝对路径.当前日期时间.消息等等.这里我参考了ydf网友写的猴子补丁(monkey patch)法. # -*- coding: utf-8 -*- # @Author : ydf # @Time : 2019/5/9 19:02 """ 不直接给print打补丁,自己重新赋值. """ import sys i

  • Python使用logging模块实现打印log到指定文件的方法

    本文实例讲述了Python使用logging模块实现打印log到指定文件的方法.分享给大家供大家参考,具体如下: 可能我们经常会使用print来输出信息到窗口,但当我们有很多个py文件需要运行,项目比较庞大的到时候,print简直就是太low了点了.那么我们可以使用强大的logging模块,把输出到指定的本地pc某个路径的文件中. 一.logging的框架 1. Loggers: 可供程序直接调用的接口,app通过调用提供的api来记录日志 2. Handlers: 决定将日志记录分配至正确的目

  • Python使用reportlab将目录下所有的文本文件打印成pdf的方法

    本文实例讲述了Python使用reportlab将目录下所有的文本文件打印成pdf的方法.分享给大家供大家参考.具体实现方法如下: # -*- coding: utf8 -*- #~ #---------------------------------------------------------------------- import wlab #pip install wlab import reportlab.pdfbase.ttfonts #reportlab.pdfbase.pdfm

  • python 递归遍历文件夹,并打印满足条件的文件路径实例

    题目:利用协程来遍历目录下,所有子文件及子文件夹下的文件是否含有某个字段值,并打印满足条件的文件的绝对路径. #!/user/bin/env python # -*- coding:utf-8 -*- #grep -rl "python" D:\devtools\workspace\python\aaa import os def init(func): def wrapper(*args,**kwargs): res=func(*args,**kwargs) res.send(Non

  • Python调用Windows命令打印文件

    1.Python调用Windows命令打印文件 Windows命令行打印文件使用print 命令,具体用法可使用help print查看.下面是使用Python调用print指令执行打印文件功能的代码: import os def printer(filename): printername = r"/D:\\A340\hpLaser" cmd = "print " + printername + " " + filename print &qu

  • Python实现爬取亚马逊数据并打印出Excel文件操作示例

    本文实例讲述了Python实现爬取亚马逊数据并打印出Excel文件操作.分享给大家供大家参考,具体如下: python大神们别喷,代码写的很粗糙,主要是完成功能,能够借鉴就看下吧,我是学java的,毕竟不是学python的,自己自学看了一点点python,望谅解. #!/usr/bin/env python3 # encoding=UTF-8 import sys import re import urllib.request import json import time import zli

  • python打印文件的前几行或最后几行教程

    写一个类似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): lin

  • python去除文件中重复的行实例

    python去除文件中重复的行,我们可以设置一个一个空list,res_list,用来加入没有出现过的字符行! 如果出现在res_list,我们就认为该行句子已经重复了,可以再加入到记录重复句子的list中. 如下代码: # -*- coding: UTF-8 -*- #程序功能是为了完成判断文件中是否有重复句子 #并将重复句子打印出来 res_list = [] #f = open('F:/master/master-work/code_of_graduate/LTP_data/raw_pla

  • shell命令行,一键创建 python 模板文件脚本方法

    写 python 文件时,每个文件开头都必须注明版本和编码.每次我 touch 文件之后粘贴这两句话让我不胜其烦. 由于我没有安装 python 的 IDE 工具,也没有为 vim 安装相应的插件.主要是为了练习自己的编码能力,而不希望过于依赖工具,所以为了解决这个问题,我写了这个脚本. #!/bin/bash if [ -n "$1" ]; then if [ -f "$1" ]; then echo $1 '文件已经存在,不能重复创建' else echo '#

  • python 读写文件,按行修改文件的方法

    如下所示: >>> f = open(r'E:\python\somefile.txt','w') 打开文件,写模式 >>> f.write('this\nis no \nhailu') 写入三行话 17 >>> f.close() >>> f = open(r'E:\python\somefile.txt','r') >>> f.read() 'this\nis no \nhailu' 查看一下 >>&

  • Python从文件中读取指定的行以及在文件指定位置写入

    Python从文件中读取指定的行 如果想根据给出的行号, 从文本文件中读取一行数据,  Python标准库linecache模块非常适合这个任务: 测试文件内容 : This is line 1. This is line 2. This is line 3. This is line 4. This is line 5. This is line 6. This is line 7. This is line 8. 测试代码: >>> import linecache >>

  • Python统计python文件中代码,注释及空白对应的行数示例【测试可用】

    本文实例讲述了Python实现统计python文件中代码,注释及空白对应的行数.分享给大家供大家参考,具体如下: 其实代码和空白行很好统计,难点是注释行 python中的注释分为以#开头的单行注释 或者以'''开头以'''结尾 或以"""开头以"""结尾的文档注释,如: ''' hello world ''' 和 ''' hello world''' 思路是用is_comment记录是否存在多行注释,如果不存在,则判断当前行是否以'''开头,是则

  • 对python for 文件指定行读写操作详解

    1.os.mknod("test.txt") #创建空文件 2.fp = open("test.txt",w) #直接打开一个文件,如果文件不存在则创建文件 3.关于open 模式: 详情: w:以写方式打开, a:以追加模式打开 (从 EOF 开始, 必要时创建新文件) r+:以读写模式打开 w+:以读写模式打开 (参见 w ) a+:以读写模式打开 (参见 a ) rb:以二进制读模式打开 wb:以二进制写模式打开 (参见 w ) ab:以二进制追加模式打开 (

  • Python查找文件中包含中文的行方法

    前言 近几天在做多语言版本的时候再次发现,区分各种语言真的是一件比较困难的事情,上一次做中文提取工具的就花了不少时间,这次决定用python试一试,结果写起来发现真是方便不少,自己整理了一下方便以后查找使用. 代码 #!/usr/bin/env python3 # -*- coding: utf-8 -*- # find the line of containing chinese in files __author__ = 'AlbertS' import re def start_find_

随机推荐