Ich versuche, bestimmte Zeilen von mehreren Dateien zu öffnen und die Zeilen jeder Datei zurückzugeben. Meine Lösung nimmt ziemlich viel Zeit in Anspruch. Hast du irgendwelche Vorschläge?
func.filename
: der Name der angegebenen Datei
func.start_line
: Ausgangspunkt in der angegebenen Datei
func.endline
:Öffnen bestimmter Zeilen in mehreren Dateien
def method_open(func):
try:
body = open(func.filename).readlines()[func.start_line:
func.end_line]
except IOError:
body = []
stderr.write("\nCouldn't open the referenced method inside {0}".
format(func.filename))
stderr.flush()
return body
Haben Sie daran, dass manchmal die Öffnung Datei func.filename
kann Punkt in der angegebenen Datei Finishing sein die Gleiches aber leider ist das meistens nicht der Fall.
Warum braucht es so viel Zeit? Ist die Datei sehr groß? Wenn ja, wie groß? –
Sie können das [linecache] (https://docs.python.org/2/library/linecache.html) Modul oder 'itertools.islice' ausprobieren und sehen, ob sie auch zu zeitaufwendig sind. Sehen Sie mehr Details hier: http://stackoverflow.com/questions/2081836/reading-specific-lines-only-python –
Nein, ich denke das Problem ist, dass ich die Datei immer wieder öffne und schließe, kann linecache stoßen Interessant wäre es, wenn es mehrere Zeilen gleichzeitig hätte. –