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

📄 linecache.py

📁 mallet是自然语言处理、机器学习领域的一个开源项目。
💻 PY
字号:
"""Cache lines from files.This is intended to read lines from modules imported -- hence if a filenameis not found, it will look down the module search path for a file bythat name."""import sysimport osfrom stat import *__all__ = ["getline","clearcache","checkcache"]def getline(filename, lineno):    lines = getlines(filename)    if 1 <= lineno <= len(lines):        return lines[lineno-1]    else:        return ''# The cachecache = {} # The cachedef clearcache():    """Clear the cache entirely."""    global cache    cache = {}def getlines(filename):    """Get the lines for a file from the cache.    Update the cache if it doesn't contain an entry for this file already."""    if cache.has_key(filename):        return cache[filename][2]    else:        return updatecache(filename)def checkcache():    """Discard cache entries that are out of date.    (This is not checked upon each call!)"""    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]def updatecache(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."""    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:            # When using imputil, sys.path may contain things other than            # strings; ignore them when it happens.            try:                fullname = os.path.join(dirname, basename)            except (TypeError, AttributeError):                # Not sufficiently string-like to do anything useful with.                pass            else:                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 + -