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 '' for current_line_number, line in enumerate(open(thefilepath, 'rU')): if current_line_number == desired_line_number -1: return line return ''
ps: 'rU' 파일을 여는 방법은 Windows, Mac, Unix 세 가지 플랫폼에서 같은 방식으로 열면 n으로 읽혀집니다