При попытке напечатать строку в текстовом файле появляется строка - PullRequest
0 голосов
/ 24 октября 2019

Я анализирую эпизод с Brooklyn 99, специально пытающийся найти номер строки в текстовом файле, где Джина говорит, что Скалли выглядит «как баклажан», но мой код не работает, любая помощь будет оценена, я использую jupyterи не получаю сообщение об ошибке при запуске моего кода.


f = open(r'C:\Users\bubba\Downloads\B99_episode_.txt', 'r')
print(f)

# Choosing TERRY 

# Initialising the value of count as -1 because it appears in the cast list 

count = -1

terry_in_f = f.readlines()
for line in terry_in_f:
    if 'TERRY' in line:
        count = count + 1 
print(count)

# Finding the line number in which Gina states 'like an eggplant'
for index, line in enumerate(f):
    if line.lower() == "like an eggplant":
        print(index)
        break

1 Ответ

0 голосов
/ 24 октября 2019

if "like an eggplant" всегда будет входить в блок, потому что "как баклажан" не фальшивка. Вы должны проверить, что фактическая строка из файла равна строке, которую вы ищете. Так и должно быть if line == "like an eggplant".

Кроме того, вы хотите напечатать номер строки. Вы можете использовать enumerate(), чтобы получить индекс текущей строки, вместо того, чтобы просто печатать саму фактическую строку.

for index, line in enumerate(f):
    if line.lower() == "like an eggplant":
        print(index)
        break

И наконец, вместо жесткого сравнения if line == "like an eggplant":, онможет быть лучше сделать if "like an eggplant" in line:. Это вернет true, если строка «как баклажан» находится в строке сценария, даже если есть некоторый окружающий шум. Например, если в сценарии написано «Джина: как баклажан», прямое сравнение вернет false. Проверка, находится ли строка внутри строки, вернула бы True. Это дает вам больше гибкости.

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