利用Python读取文件(针对大文件和小文件两种)的首行(第一行)和末行(最后一行)。脚本借鉴了前人的两种处理思路(在下面的脚本中有注释说明引用出处),并修正了原先两种处理方法中如果文件末尾含有多个空行而返回空行的问题。

脚本内容可以从GitHub上获取:

https://github.com/DingGuodong/LinuxBashShellScriptForOps/blob/master/functions/file/getFileLastLine.py

脚本内容如下:

#!/usr/bin/python
# encoding: utf-8
# -*- coding: utf8 -*-
import os# Refer: http://www.pythonclub.org/python-files/last-line
def get_last_line(inputfile):filesize = os.path.getsize(inputfile)blocksize = 1024dat_file = open(inputfile, 'rb')last_line = ""if filesize > blocksize:maxseekpoint = (filesize // blocksize)dat_file.seek((maxseekpoint - 1) * blocksize)elif filesize:# maxseekpoint = blocksize % filesizedat_file.seek(0, 0)lines = dat_file.readlines()if lines:last_line = lines[-1].strip()# print "last line : ", last_linedat_file.close()return last_line# Refer: http://code.activestate.com/recipes/578095/
def print_first_last_line(inputfile):filesize = os.path.getsize(inputfile)blocksize = 1024dat_file = open(inputfile, 'rb')headers = dat_file.readline().strip()if filesize > blocksize:maxseekpoint = (filesize // blocksize)dat_file.seek(maxseekpoint * blocksize)elif filesize:maxseekpoint = blocksize % filesizedat_file.seek(maxseekpoint)lines = dat_file.readlines()if lines:last_line = lines[-1].strip()# print "first line : ", headers# print "last line : ", last_linereturn headers, last_line# My Implementation
def get_file_last_line(inputfile):filesize = os.path.getsize(inputfile)blocksize = 1024with open(inputfile, 'rb') as f:last_line = ""if filesize > blocksize:maxseekpoint = (filesize // blocksize)f.seek((maxseekpoint - 1) * blocksize)elif filesize:f.seek(0, 0)lines = f.readlines()if lines:lineno = 1while last_line == "":last_line = lines[-lineno].strip()lineno += 1return last_line

python3 读取文件的最后一行 非空行相关推荐

  1. python读取一行的函数_Python linecache.getline()读取文件中特定一行的脚本

    Python linecache.getline()读取文件中特定一行的脚本 比如: Code highlighting produced by Actipro CodeHighlighter (fr ...

  2. shell读取文件的每一行

    shell读取文件的每一行 写法一: ---------------------------------------------------------------------------- #!/b ...

  3. c语言读取一行的前几个字符串,c语言读取文件某一列 c语言 读取文件中某一行的前一行...

    各种格式的文件用什么软件打开.$$$TemporaryFile)Q7?5g4U5m&_.@.m;K"S.$$AOS/2club.looaoo.net-s;X'a)B.N,w7\;{9 ...

  4. python读取文件中的一行

    python读取文件 readline()方法,读取一行文件 readlines()方法,读取多行文件,保存到一个列表中 文件内容: filepath = 'test4.txt' handle = o ...

  5. python判断最后一行_python中如何判断文件的最后一行是空行?

    问题: 前两天遇到一个问题,比如dat和bcp文件的格式需要最后一行一定是空行.但是用python怎么也不能读到最后一行的空行. test1: file_obj = open(file_name) a ...

  6. c++ 读取文件 最后一行读取了两次

    用ifstream的eof(),竟然读到文件最后了,判断eof还为false.网上查找资料后,终于解决这个问题. 参照文件:http://tuhao.blogbus.com/logs/21306687 ...

  7. python3读取linux文件,Python3读取文件小技巧

    一般我们在使用python读取文件是要么吧文件名写死,要么使用os.path.join的方式读取文件.将文件地址写死会造成在windows.mac.linux上因为正斜杠和反斜杠的问题导致代码无法运行 ...

  8. MATLAB如何读取文件某一行的内容,如何读取文件的某一行

    C语言 怎么用fgets()读取一个txt文件中的任意行的信息 C语言 怎么用fgets()读取一个txt文件中的任意行的信息 比如 szhfias sdf如果使用fgets()读取某个文件,第一次读 ...

  9. python3 读取文件夹_python读取listPython3如何检查文件或文件夹是否存在?

    如何检查一个文件或者文件夹存在?有几种方法,Python2和Python3版本也有不同,这是在文件操作中常用到的方法,只有文件存在我们才可以继续对文件进行处理,下面总结了常用的检查文件是否存在的方法. ...

最新文章

  1. XCOM串口助手打印不出数据
  2. 商汤科技开源DAVIS2017视频目标分割冠军代码
  3. python难嘛-自学Python很难吗,为何会看不进去!
  4. centos php5.3 yum 安装 php53-mcrypt
  5. n个数进栈后输出的可能序列数
  6. 实现接口时@Override注解问题
  7. lableimg闪退_CV学习笔记(二十五):数据集标注与制作
  8. linux比较10个文件是否一致,Linux中文件管理--cmp--比较两个文件是否有差异
  9. 小米集团架构调整:王川出任CSO 李肖爽兼任大家电部总经理
  10. wince6-Error: failed PB timebomb check
  11. 如何手动触发onchange事件? [重复]
  12. 《人件》(Peopleware)文摘
  13. mysql软件可行性分析报告_软件工程作业 图书馆管理系统可行性分析报告
  14. 【微积分3一元函数积分学】第三章第三节 反常积分
  15. 大数据和Hadoop培训能否满足市场需求
  16. UBUNTU快速回到桌面
  17. 关于Palantir -第五部分:浏览器应用
  18. 邮箱接爱服务器端口填什么,你了解多少邮件端口及常用邮箱服务器?
  19. php的radio怎么设置默认是勾选的,php实现select、radio和checkbox默认选择的实例参考...
  20. JCMsuite应用:光子晶体谐振腔光子晶体谐振腔

热门文章

  1. 使用git命令导出项目_【git学习】SVN项目迁移到Git操作指南
  2. Linux Kernel TCP/IP Stack — 网卡监控
  3. XDP/eBPF — BPF
  4. 嵌入式驱动之阻塞操作、非阻塞操作
  5. 运维-nginx +php 错误状态码说明
  6. server side render
  7. Java核心技术卷I基础知识3.6.6 码点与代码单元
  8. (第7篇)灵活易用易维护的hadoop数据仓库工具——Hive
  9. 用百度SDK获取地理位置和天气信息
  10. SQLIOSim 模拟SQLServer的行为来测试IO性能