⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linecach.py

📁 minimal python variant for small footprint apps like embedded apps
💻 PY
字号:
# Cache lines from files.# This is intended to read lines from modules imported -- hence if a filename# is not found, it will look down the module search path for a file by# that name.import sysimport osfrom stat import *def getline(filename, lineno):	lines = getlines(filename)	if 1 <= lineno <= len(lines):		return lines[lineno-1]	else:		return ''# The cachecache = {} # The cache# Clear the cache entirelydef clearcache():	global cache	cache = {}# Get the lines for a file from the cache.# Update the cache if it doesn't contain an entry for this file already.def getlines(filename):	if cache.has_key(filename):		return cache[filename][2]	else:		return updatecache(filename)# Discard cache entries that are out of date.# (This is not checked upon each call!)def checkcache():	for filename in cache.keys():		size, mtime, lines, fullname = cache[filename]		try:			stat = os.stat(fullname)		except os.error:			del cache[filename]			continue		if size <> stat[ST_SIZE] or mtime <> stat[ST_MTIME]:			del cache[filename]# Update a cache entry and return its list of lines.# If something's wrong, print a message, discard the cache entry,# and return an empty list.def updatecache(filename):	if cache.has_key(filename):		del cache[filename]	if not filename or filename[0] + filename[-1] == '<>':		return []	fullname = filename	try:		stat = os.stat(fullname)	except os.error, msg:		# Try looking through the module search path		basename = os.path.split(filename)[1]		for dirname in sys.path:			fullname = os.path.join(dirname, basename)			try:				stat = os.stat(fullname)				break			except os.error:				pass		else:			# No luck##			print '*** Cannot stat', filename, ':', msg			return []	try:		fp = open(fullname, 'r')		lines = fp.readlines()		fp.close()	except IOError, msg:##		print '*** Cannot open', fullname, ':', msg		return []	size, mtime = stat[ST_SIZE], stat[ST_MTIME]	cache[filename] = size, mtime, lines, fullname	return lines

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -