Иногда мне нужно получить только строки, содержащие определенную строку из текстового файла (например, при разборе файла журнала). Я обычно делаю это так:Эффективно извлекать строки, содержащие строку в Python
with open(TEXTFILENAME,'r') as f:
contents = f.readlines()
targets = [s for s in contents if FINDSTRING in s]
Однако, я увидел, что есть возможно два лайнера:
with open(TEXTFILENAME,'r') as f:
targets = [s for s in f.readlines() if FINDSTRING in s]
Интересно, если второй метод является более эффективным, является ли readlines()
функции в данном случае выступает как итератор.
Спасибо! Я знал, что что-то забыл. – pepoluan