python读取文件的指定行,可以使用以下的方法

1、os.mknod(“test.txt”) #创建空文件

2、fp = open(“test.txt”,w) #直接打开一个文件,如果文件不存在则创建文件

3、open 模式

处理文件时,一个常见的需求就是读取文件的指定行内容,那么该如何实现的?with open('a.log', 'r') as fp:

lines = fp.readlines()

last_line = lines[-1]

即使不考虑异常处理的问题,这个代码也不完美,因为如果文件很大,lines = fp.readlines()会造成很大的时间和空间开销。

解决的思路是用将文件指针定位到文件尾,然后从文件尾试探出一行的长度,从而读取最后一行。代码如下:def __get_last_line(self, filename):

"""

get last line of a file

:param filename: file name

:return: last line or None for empty file

"""

try:

filesize = os.path.getsize(filename)

if filesize == 0:

return None

else:

with open(filename, 'rb') as fp: # to use seek from end, must use mode 'rb'

offset = -8 # initialize offset

while -offset < filesize: # offset cannot exceed file size

fp.seek(offset, 2) #read#offset chars from eof(represent by number'2')

lines = fp.readlines() # read from fp to eof

if len(lines) >= 2: # if contains at least 2 lines

return lines[-1] # then last line is totally included

else:

offset *= 2 # enlarge offset

fp.seek(0)

lines = fp.readlines()

return lines[-1]

except FileNotFoundError:

print(filename + ' not found!')

return None

其中有几个注意点:

1. fp.seek(offset[, where])中where=0,1,2分别表示从文件头,当前指针位置,文件尾偏移,缺省值为0,但是如果要指定where=2,文件打开的方式必须是二进制打开,即使用'rb'模式,

2. 设置偏移量时注意不要超过文件总的字节数,否则会报OSError,

3. 注意边界条件的处理,比如文件只有一行的情况。

更多学习内容,请点击python学习网。

fp.read([size]) #size为读取的长度,以byte为单位

fp.readline([size]) #读一行,如果定义了size,有可能返回的只是一行的一部分

fp.readlines([size]) #把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分。

fp.write(str) #把str写到文件中,write()并不会在str后加上一个换行符

fp.writelines(seq) #把seq的内容全部写到文件中(多行一次性写入)。这个函数也只是忠实地写入,不会在每行后面加上任何东西。

fp.close() #关闭文件。python会在一个文件不用后自动关闭文件,不过这一功能没有保证,最好还是养成自己关闭的习惯。 如果一个文件在关闭后还对其进行操作会产生ValueError

fp.flush() #把缓冲区的内容写入硬盘

fp.fileno() #返回一个长整型的”文件标签“

fp.isatty() #文件是否是一个终端设备文件(unix系统中的)

fp.tell() #返回文件操作标记的当前位置,以文件的开头为原点

fp.next() #返回下一行,并将文件操作标记位移到下一行。把一个file用于for … in file这样的语句时,就是调用next()函数来实现遍历的。

fp.seek(offset[,whence]) #将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的,一般为正数。但如果提供了whence参数就不一定了,whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。

fp.truncate([size]) #把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。如果size比文件的大小还要大,依据系统的不同可能是不改变文件,也可能是用0把文件补到相应的大小,也可能是以一些随机的内容加上去。

python怎么读文件里的某一行-python如何读取文件中的某几行相关推荐

  1. python怎么读文件里的某一行-python读取txt文件并取其某一列数据的示例

    菜鸟笔记 首先读取的txt文件如下: AAAAF110 0003E818 0003E1FC 0003E770 0003FFFC 90 AAAAF110 0003E824 0003E208 0003E7 ...

  2. python怎么读文件里的某一行-Python如何获取文件指定行的内容

    linecache, 可以用它方便地获取某一文件某一行的内容.而且它也被 traceback 模块用来获取相关源码信息来展示. 用法很简单: >>> import linecache ...

  3. 将文件夹内多个子文件里的Excel数据合并到一个文件,保存为CSV格式

    将文件夹内多个子文件里的Excel数据合并到一个文件,保存为CSV格式 使用条件: Excel文件必须是xlsx格式,且数据结构一致,方可用以下代码. # 第一步 导入模块 import pandas ...

  4. Python编程语言学习:python的列表的特殊应用之一行命令实现if判断中的两类判断

    Python编程语言学习:python的列表的特殊应用之一行命令实现if判断中的两类判断 目录 python的列表的特殊应用 一行命令实现if判断中的两类判断 python的列表的特殊应用 一行命令实 ...

  5. python读取最后一行数据_Python读取文件最后n行的方法

    本文实例讲述了Python实现读取文件最后n行的方法.分享给大家供大家参考,具体如下: # -*- coding:utf8-*- import os import time import dateti ...

  6. python读取文件前30个字符_Python 批量读取文件中指定字符的实现

    1.背景 从指定的NLP生成的文件中读取指定的字符. 2.待读取文件 是以":"作为分隔符的数据,每一行以回车结束.此文件为XXX.train 3.读取每一句中的汉字 ... fi ...

  7. python处理问题汇总二(重复值索引,顺序读取文件,drop函数,数组元素排名)

    文章目录 1. python处理重复值索引问题 2.python读取文件夹列表的问题 3. dataframe删除指定行.列 1)drop函数 2)inplace参数 4. argsort数组索引排名 ...

  8. python读取文件夹下所有文件的名称_python2.7 学习之读取文件夹下所有文件名称及内容...

    python2.7 学习之读取文件夹下所有文件名称及内容 最近稍稍有点空闲时间, 于是重新温习了一下之前学习过的 python 基础废话不多说, 记录一下自己的所得 首先, 安装什么的不在本人的温习范 ...

  9. python怎么读_锋哥告诉你Python怎么读

    现在大街小巷都在说Python,Python具有简单.易学.免费.开源.可扩展.可嵌入.面向对象等优点,语法表达优美易读.Python可以应用的领域:后端开发.前端开发.爬虫开发.人工智能.金融量化分 ...

最新文章

  1. php图片美颜,Mac_Mac如何使用Photo Booth拍摄照片拍摄好玩好看的相片,  我们经常会使用美颜相机 - phpStudy...
  2. 如何删除子域信任关系?
  3. Android 控件 - Button
  4. java爬虫post 404_POST 后台404错误
  5. js实现ajax的post请求步骤
  6. linux下的shell脚本(基本)
  7. UIImageView的内容模式以及ImageNamed和imageWithContentsOfFile的区别
  8. 两个矩阵是否相交的算法_个性化推荐召回算法——Personal Rank
  9. 【考研经验分享】2020信工所二室双非上岸经验贴
  10. ZigBee网络数据传递流程_米家入门(设备篇):智能网关(ZigBee)
  11. oracle 日期格式筛选,oracle 日期格式怎么筛选
  12. python中shelf对象_shelve -- 用来持久化任意的Python对象
  13. fgetc、fputc、fputs、fgets的使用
  14. 前端的几种数据存储方式
  15. 巧用google实现快速搜索
  16. pandas 用均值填充缺失值NaN —— fillna 方法解析
  17. 阿里巴巴国际站运营排名规则 外贸b2b平台阿里巴巴国际站优化技巧方法
  18. 服务器监控管理工具大全
  19. 轻量化后台管理HTML设计页面
  20. Python 利用opencv给白底照片换色,全网唯一

热门文章

  1. php设计模式八-----装饰器模式
  2. 内存分配的几个函数的简单对比分析
  3. usaco2.1.2(frac1)
  4. PHP做下载文件的方法
  5. [Scala]集合中List元素转Tuple元素的函数迭代写法
  6. MATLAB爬虫爬取股票数据
  7. BugBash活动分享
  8. (笔记)Mysql命令select from:查询表中的数据(记录)
  9. stm32开发之标准库的介绍
  10. 排错-Loadrunner录制打不开浏览器解决方法