Сначала вы открываете файл и читаете его в строку с помощью readline (). Позже вы попытаетесь выполнить readline () из строки, полученной на первом шаге.
Вам нужно позаботиться о том, какой объект (вещь) вы обрабатываете: open () дал вам файл "jargon", readline на jargon дал вам строку "jargonFile".
Так что jargonFile.readline больше не имеет смысла
Обновить как ответ на комментарий:
Хорошо, теперь, когда проблема с ошибкой str решена, подумайте о структуре программы:
big loop
enter a search term
open file
inner loop
read a line
print result if string found
close file
Вам нужно изменить программу, чтобы она соответствовала описанию
Обновление II:
SD, если вы хотите избежать повторного открытия файла, вам все равно потребуются два цикла, но на этот раз один цикл считывает файл в память, когда это делается, второй цикл запрашивает поисковый запрос. Таким образом, вы бы структурировать это как
create empty list
open file
read loop:
read a line from the file
append the file to the list
close file
query loop:
ask the user for input
for each line in the array:
print result if string found
Для получения дополнительных баллов от вашего профессора добавьте несколько комментариев к вашему решению, в которых упоминаются оба возможных решения и почему вы выбираете то, которое выбрали Подсказка: в этом случае это классический компромисс между временем выполнения (память быстрая) и использованием памяти (что, если ваш файл жаргона содержит 100 миллионов записей ... хорошо, вы бы использовали что-то более сложное, чем плоский файл в этом случае Но вы не можете загрузить его в память.)
Да, и еще один намек на второе решение: Python поддерживает кортежи ("a", "b", "c") и списки ["a", "b", "c"]. Вы хотите использовать последний, потому что список может быть изменен (кортеж не может.)
myList = ["Hello", "SD"]
myList.append("How are you?")
foreach line in myList:
print line
==>
Hello
SD
How are you?
Хорошо, последний пример содержит все новые вещи (определение списка, добавление в список, цикл по списку) для второго решения вашей программы. Получайте удовольствие, собирая все это вместе.