#python #search #text #word
#python #Поиск #текст #word
Вопрос:
Я очень новичок в Python, поэтому, пожалуйста, извините за невежественные вопросы или чрезмерно сложный код. 🙂 Я очень благодарен за любую помощь.
Код, который у меня есть до сих пор, состоит в том, чтобы открыть для чтения / несколько текстовых файлов, выполнить поиск строк по ключевым словам, а затем записать новые текстовые файлы, оставив строки с найденными ключевыми словами. Это делается для очистки файлов (газетных статей) от информации, которую я не хочу иметь, прежде чем анализировать оставшийся текст. Проблема в том, что я могу искать только отдельные слова. Однако иногда я хотел бы искать определенную комбинацию слов, то есть не просто «Rechte», а «Alle Rechte vorbehalten». Если я сохраню это в своем delword-list, это не сработает (я думаю, потому что part в line.split проверяет только отдельные слова.)
Любая помощь очень ценится!
import os
delword = ['Quelle:', 'Ressort:', 'Ausgabe:', 'Dokumentnummer:', 'Rechte', 'Alle Rechte vorbehalten']
path = r'C:files'
pathnew = r'C:filesnew'
dir = []
for f in os.listdir(path):
if f.endswith(".txt"):
#print(os.path.join(path, f))
print(f)
if f not in dir:
dir.append(f)
for f in dir:
fpath = os.path.join(path, f)
print (fpath)
fopen = open(fpath, encoding="utf-8", errors='ignore')
printline = True
#print(fopen.read())
fnew = 'clean' f
fpathnew = os.path.join(pathnew, fnew)
with open(fpath, encoding="utf-8", errors='ignore') as input:
with open(fpathnew, "w", errors='ignore') as output:
for line in input:
printline = True
for part in line.split():
for i in range(len(delword)):
if delword [i] in part:
#line = " ".join((line).split())
printline = False
#print('Found: ', line)
if printline == False:
output.write('n')
if printline == True:
output.write(line)
input.close()
output.close()
fopen.close()
Ответ №1:
В данном конкретном случае — вам не нужно разделять строку. Вы можете выполнить аналогичные проверки с помощью
for line in input:
for word in delword:
if word in line: ...
Так же, как примечание: обычно более общие или сложные проблемы будут заключаться в использовании регулярных выражений в качестве инструмента, созданного для такой обработки