2016-03-22 4 views
0

Мне нужно разобрать текст, но проблема в том, что слова, которые я ищу, не только на одной строке.Python - взять слова из текста

Например, слово computer может иметь «comp» в конце строки и в начале строки у меня есть «матер» (без каких-либо пробелов). Я хочу напечатать, что нашел слово «компьютер»

Это лучшее решение для этого, учитывая, что мне нужен оптимизированный алгоритм, а не то, что проверяет каждую букву в слове компьютер.

+0

Что делать, если вы искали Foobar и обув был в конце, и бар был в начале следующей строки, но Foo и бар были фактически отдельные слова в тексте? –

+0

, если они были отдельными словами, тогда у них должно быть пространство между ними, поэтому перед баром будет пространство (в начале новой строки) – spoke

+0

Итак, всегда есть ведущее пространство? Также насколько велики мы говорим о размере файла? Если это разумно, вы можете просто разбить и присоединиться к строкам –

ответ

0

Попробуйте использовать такой формат:

word in "".join(line.strip() for line in text) 

Here is a demo

+0

это не принесет проблемы, если у меня большой файл (может даже> 100mb) – spoke

+0

Что для вас не так? – Onilol

+0

@spoke Это зависит от того, сколько памяти у вас есть, мой бюджетный бюджетный 4 ГБ. Ваша альтернатива заключается в буферизации, используя, однако, подход, аналогичный тому, который предложен _jonotoronto_ – gboffi

Смежные вопросы