写一个类似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,打印文件
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“python打印文件的前几行或最后几行教程”评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新动态
2025年11月04日
2025年11月04日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]