Линия:
with open ("clientIntensity.txt") as search:
Создает файл-объект с именем search
. Этот файл-объект имеет много методов , но не .next()
метод. Следовательно, вызов .next()
приводит к ошибке «что вы хотите, чтобы я сделал!?».
Однако вы знаете, что хотите делать, хотите перебирать каждую строку, и вы делаете это с помощью цикла for. Прелесть цикла for состоит в том, что в конце текущей итерации он сам переходит к следующей итерации, пока не будет достигнут конец (на самом деле это конец StopIteration
).
Так что, если вы просто хотите перейти к следующей строке, просто дайте циклу for!
with open ("clientIntensity.txt") as search:
for line in search:
if clientid in line:
idin=line[6:]#to extract high or moderate from the text
idin=idin[:-2]
print ("Intensity = ",idin)
print("-",idin,"-")
acti()
break
Один последний совет. Если у вас есть строка, такая как hello,there,
, вам потребуется много усилий для извлечения there
путем нарезки, как вы, но это очень легко сделать, используя метод объекта string
, а именно .split()
. Это позволяет получить список подстрок, указав разделитель. Например, 'hello,there,'.split(',')
дает ['hello', 'there', '']
. Затем вы можете просто индексировать второе слово с помощью 'hello,there,'.split(',')[1]
, давая 'there'
!
ПРИМЕЧАНИЕ. Причина, по которой третий метод возвращается из метода split, заключается в том, что строка заканчивается запятой, поэтому при разделении на запятую также возвращается пустая строка в конце, но вы можете игнорировать это .