>  기사  >  백엔드 개발  >  Python 라인캐시 모듈

Python 라인캐시 모듈

高洛峰
高洛峰원래의
2016-11-22 09:50:481647검색

linecache

오늘 저는 파일의 특정 줄의 내용을 쉽게 얻는 데 사용할 수 있는 작은 Python 모듈인 linecache를 공유합니다. 또한 표시할 관련 소스 코드 정보를 얻기 위해 역추적 모듈에서 사용됩니다.
사용법은 매우 간단합니다.

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

linecache.getline 첫 번째 매개변수는 파일 이름이고 두 번째 매개변수는 줄 번호입니다. 파일 이름을 직접 찾을 수 없으면 sys.path에서 찾을 수 있습니다.

요청한 줄 수가 파일의 줄 수를 초과하는 경우 함수는 오류를 보고하지 않지만 빈 문자열을 반환합니다. 파일이 없으면 함수는 오류를 보고하지 않고 빈 문자열을 반환합니다.

linecache는 파일 읽기를 최적화하기 위해 일부 정보를 캐시하려고 시도합니다. 또한 캐시 종속성을 처리하는 두 가지 방법을 제공합니다.

linecache.clearcache()   # 清除不再需要的linecache.getcache()获取的内容

linecache.checkcache([filename])  # 检查文件在硬盘上是否有更新,如果有更新缓存。
                                  # 如果没有提供文件名参数,则检查linecache缓存里所有的条目

기타

파일이 너무 커서 한 줄만 읽을 때 linecache를 사용하면 프로그램의 병목 현상이 발생하는 경우 다음 방법을 사용하여 속도를 높일 수도 있습니다. 개선 사항:

def get_line(thefilepath, desired_line_number):
    if desired_line_number < 1: return &#39;&#39;
    for current_line_number, line in enumerate(open(thefilepath, &#39;rU&#39;)):
        if current_line_number == desired_line_number -1:
            return line
    return &#39;&#39;

ps: 'rU' 파일을 여는 방법은 Windows, Mac, Unix 세 가지 플랫폼에서 같은 방식으로 열면 n으로 읽혀집니다

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:파이썬 순서 사전다음 기사:파이썬 순서 사전