网络编程
位置:首页>> 网络编程>> Python编程>> Python如何获取文件指定行的内容

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

作者:Python  发布时间:2023-08-13 09:45:37 

标签:Python,文件指定行

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)

来源:https://www.py.cn/jishu/jichu/10428.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com