Python如何获取文件指定行的内容


Posted in Python onMay 27, 2020

linecache, 可以用它方便地获取某一文件某一行的内容。而且它也被 traceback 模块用来获取相关源码信息来展示。

用法很简单:

>>> import linecache
>>> linecache.getline('/etc/passwd', 4)
'sys:x:3:3:sys:/dev:/bin/sh\n'

linecache.getline 第一参数是文件名,第二个参数是行编号。如果文件名不能直接找到的话,会从 sys.path 里找。

如果请求的行数超过文件行数,函数不会报错,而是返回''空字符串。

如果文件不存在,函数也不会报错,也返回''空字符串。

# Python的标准库linecache模块非常适合这个任务
import linecache
the_line = linecache.getline('d:/FreakOut.cpp', 222)
print (the_line)
# linecache读取并缓存文件中所有的文本,
# 若文件很大,而只读一行,则效率低下。
# 可显示使用循环, 注意enumerate从0开始计数,而line_number从1开始
def getline(the_file_path, line_number):
 if line_number < 1:
  return ''
 for cur_line_number, line in enumerate(open(the_file_path, 'rU')):
  if cur_line_number == line_number-1:
   return line
 return ''

方法扩展:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# Python的标准库linecache模块非常适合这个任务
import linecache
the_line = linecache.getline('d:/FreakOut.cpp', 222)
print (the_line)
# linecache读取并缓存文件中所有的文本,
# 若文件很大,而只读一行,则效率低下。
# 可显示使用循环, 注意enumerate从0开始计数,而line_number从1开始
def getline(the_file_path, line_number):
 if line_number < 1:
  return ''
 for cur_line_number, line in enumerate(open(the_file_path, 'rU')):
  if cur_line_number == line_number-1:
   return line
 return ''
the_line = linecache.getline('d:/FreakOut.cpp', 222)
print (the_line)

到此这篇关于Python如何获取文件指定行的内容的文章就介绍到这了,更多相关Python获取文件指定行的内容的方法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
Apr 25 Python
详解Python中的文本处理
Apr 11 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
Mar 13 Python
详解Python中的四种队列
May 21 Python
python实现多层感知器
Jan 18 Python
Python2与Python3的区别实例分析
Apr 11 Python
快速解决vue.js 模板和jinja 模板冲突的问题
Jul 26 Python
Python读取YAML文件过程详解
Dec 30 Python
使用Python求解带约束的最优化问题详解
Feb 11 Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
Feb 27 Python
Tensorflow之MNIST CNN实现并保存、加载模型
Jun 17 Python
pandas数据分组groupby()和统计函数agg()的使用
Mar 04 Python
Python web如何在IIS发布应用过程解析
May 27 #Python
利用Python实现某OA系统的自动定位功能
May 27 #Python
Python中常见的数制转换有哪些
May 27 #Python
Python如何实现邮件功能
May 27 #Python
Python中内建模块collections如何使用
May 27 #Python
Python OpenCV实现测量图片物体宽度
May 27 #Python
Python中socket网络通信是干嘛的
May 27 #Python
You might like
MayFish PHP的MVC架构的开发框架
2009/08/13 PHP
浅析php数据类型转换
2014/01/09 PHP
php中操作memcached缓存进行增删改查数据的实现代码
2014/08/15 PHP
iOS+PHP注册登录系统 PHP部分(上)
2016/12/26 PHP
php json相关函数用法示例
2017/03/28 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
2019/10/03 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
jquery ajax同步异步的执行最终解决方案
2013/04/26 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
2013/10/17 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
2020/12/22 Javascript
纯js模仿windows系统日历
2017/02/04 Javascript
js控制文本框禁止输入特殊字符详解
2017/04/07 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
Vue中的数据监听和数据交互案例解析
2017/07/12 Javascript
easyui下拉框动态级联加载的示例代码
2017/11/29 Javascript
JS使用canvas中的measureText方法测量字体宽度示例
2019/02/02 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
2020/12/09 Javascript
使用js原生实现年份轮播选择效果实例
2021/01/12 Javascript
Python使用装饰器进行django开发实例代码
2018/02/06 Python
如何实现删除numpy.array中的行或列
2018/05/08 Python
Python下使用Scrapy爬取网页内容的实例
2018/05/21 Python
Python socket实现多对多全双工通信的方法
2019/02/13 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
华为2019校招笔试题之处理字符串(python版)
2019/06/25 Python
python中@contextmanager实例用法
2021/02/07 Python
Python 里最强的地图绘制神器
2021/03/01 Python
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
介绍一下.net和Java的特点和区别
2012/09/26 面试题
什么是Assembly(程序集)
2014/09/14 面试题
军训考核自我鉴定
2014/02/13 职场文书
餐厅感恩节活动策划方案
2014/10/11 职场文书
民主生活会批评与自我批评总结
2014/10/17 职场文书
社区宣传标语口号
2015/12/26 职场文书
Nginx的rewrite模块详解
2021/03/31 Servers
了解Redis常见应用场景
2021/06/23 Redis