Python: как отсканировать .txt и вытащить конкретное слово в список - PullRequest
1 голос
/ 13 апреля 2019

Я хочу построчно сканировать файл .txt на предмет конкретных слов. Когда слова найдены, я хочу добавить эту конкретную строку в список. Любая помощь будет оценена!

Код ниже печатает пустой список ...

list = [ ]
word = 'help!'

with open('help!') as f:
    lines = f.readlines()

if word in lines:
    list.append(word)

print(list)

Ответы [ 3 ]

2 голосов
/ 13 апреля 2019

Вы можете перебрать все строки в файле .txt и проверить, встречается ли слово в этой строке. Если это так, добавьте эту строку в свой список.

list = [ ]
word = 'help!'

with open('text_file.txt') as f:
    lines = f.readlines()

for line in lines: #iterate over lines
    if word in line: #check if word in line
        list.append(line) #add line

print(list)
0 голосов
/ 13 апреля 2019

Вы можете быть осторожны с проверкой предложения для слова, используя:

If (word in line):
    list.append(line)

Если слово = «in», вышеуказанное условие вернет ложное положительное значение «True» при тестировании на строке «Sitt in g на стенде».

Возможно, лучший подход:

if (word in line.split(“ “)):
    list.append(line)

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

Regex = re.compile(r”\W+”)
if (word in Regex.sub(“ “,line).split(“ “)):
        list.append(line)
0 голосов
/ 13 апреля 2019

Скорее всего, вы захотите сделать цикл for для каждой строки и посмотреть, появляется ли ваше слово.

# declare variables
list = []
word = 'help!'

# filepath to your .txt file, if its in the
# same directory as your py script, then just set it as the .txt name
filePath = 'stackOverflow.txt'

# for each line in your .txt file
for line in open(filePath):
     # if your word is in that line then ... 
     if(word in line):
          # append to list
          list.append(line)

# print list
print(list)

Надеюсь, это поможет! =)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...