随机访问Python中的文本行(行缓存)
Python标准库中的linecache模块的用途是促进对任何文本文件的随机访问,尽管Python的traceback模块广泛使用此模块来生成错误跟踪堆栈。进一步的读取精美照片保存在缓存中,这样可以节省重复读取行时的时间。
该模块中最重要的功能是getline()从给定文件中读取指定的行号。以下是功能列表-
getline(文件,x)
此函数从文件返回第x行。如果不存在,它将返回空字符串。如果当前路径中不存在该文件,则函数绑定以将其定位在sys.path–模块搜索路径的目录中。
清除缓存()
如果getline()不再需要先前功能的prettyprint,则可以通过此功能清除缓存。
checkcache()
此函数检查缓存是否有效。如果缓存中的文件可能已在磁盘上更改,这很有用。
lazycache()
使用module_globals为文件名缓存种子。仅在调用getlines时(而不是立即)才要求模块加载器提供源。
getlines()
此函数以列表对象的形式从文件返回行。
updatecache()
此函数更新缓存条目并返回行列表。
为了演示使用线缓存功能,首先我们构建一个文本文件来存储著名的PythonZen(影响Python设计理念的软件原理列表)。通过以下代码将'importthis'的输出重定向到zen.txt-
import sys, io
zen = io.StringIO()
old_stdout = sys.stdout
sys.stdout = zen
import this
sys.stdout = old_stdout
f=open('zen.txt','w')
f.write(zen.getvalue())
f.close()执行上述代码后,将在当前目录中创建zen.txt。我们将使用该文本文件来读取带有getline()方法的行。
从文件中读取第4行
>>> linecache.getline('zen.txt',4)
'Explicit is better than implicit.\n'请注意,返回字符串以换行符结尾。
要显示从4到10的行号,请在getlines()函数返回的列表上使用切片运算符
>>> linecache.getlines('zen.txt')[4:10]
['Simple is better than complex.\n', 'Complex is better than complicated.\n', 'Flat is better than nested.\n', 'Sparse is better than dense.\n', 'Readability counts.\n', "Special cases aren't special enough to break the rules.\n"]在本文中,我们了解了Python标准库中的linecache模块。
热门推荐
10 新年门口花束祝福语简短
11 盘锦结婚祝福语大全简短
12 父母生日祝福语 简短独特
13 家庭恩爱祝福语简短英文
14 高考俄语祝福语大全简短
15 虎年祝福语 诗句唯美简短
16 生日婚礼祝福语简短精辟
17 虎年喝酒拜年祝福语简短
18 教师闺蜜祝福语简短