Linecache
Heute teile ich ein kleines Python-Modul: Linecache, mit dem sich der Inhalt einer bestimmten Zeile einer Datei einfach abrufen lässt. Außerdem wird es vom Traceback-Modul verwendet, um relevante Quellcodeinformationen für die Anzeige abzurufen.
Die Verwendung ist sehr einfach:
>>> import linecache >>> linecache.getline('/etc/passwd', 4) 'sys:x:3:3:sys:/dev:/bin/sh\n'
linecache.getline Der erste Parameter ist der Dateiname und der zweite Parameter ist die Zeilennummer. Wenn der Dateiname nicht direkt gefunden werden kann, wird er in sys.path gefunden.
Wenn die Anzahl der angeforderten Zeilen die Anzahl der Zeilen in der Datei überschreitet, meldet die Funktion keinen Fehler, sondern gibt eine leere Zeichenfolge zurück. Wenn die Datei nicht vorhanden ist, meldet die Funktion keinen Fehler und gibt eine leere Zeichenfolge zurück.
linecache versucht, einige Informationen zwischenzuspeichern, um das Lesen der Datei zu optimieren. Es bietet außerdem zwei Methoden zum Umgang mit Cache-Abhängigkeiten.
linecache.clearcache() # 清除不再需要的linecache.getcache()获取的内容 linecache.checkcache([filename]) # 检查文件在硬盘上是否有更新,如果有更新缓存。 # 如果没有提供文件名参数,则检查linecache缓存里所有的条目
Andere
Wenn die Datei sehr groß ist und nur eine Zeile gelesen wird und die Verwendung von Linecache zum Engpass des Programms wird, können Sie auch die folgende Methode verwenden, um etwas Geschwindigkeit zu gewinnen Verbesserungen:
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: Die Möglichkeit, die Datei „rU“ zu öffnen, besteht darin, sie auf den drei Plattformen Windows, Mac und Unix auf die gleiche Weise zu öffnen, und sie wird als n gelesen