Итак, я работаю через скрипт на Python, который открывает файл, содержащий заголовки электронной почты, которые я обрабатываю, чтобы найти() определенный набор чисел с плавающей запятой, которые я хочу использовать для выполнения некоторых математических функций позже.Я хочу использовать rfind(), чтобы найти наивысший индекс в str, но он возвращает самый низкий индекс
Вот мой код просто для удовольствия:
fname = raw_input("What is the file name? ")
fhand = open(fname)
total = 0
count = 0
for line in fhand:
line = line.rstrip()
linePos = line.rfind('X-DSPAM-Confidence: ')
if linePos >= 0:
rnum = line[linePos + 1: (linePos + 1)+7]
print rnum
#total += float(rnum)
#count += 1
elif linePos == -1:
continue
#avg = total/count
#print "Average spam confidence: " + avg
Я пытаюсь использовать RFIND(), чтобы получить самый высокий показатель в ул я ищу, чтобы порезать [] с числами с плавающей точкой I хотите, чтобы прочитанная строка была прочитана.
Мой из положить на тестовом отпечатке я побежал, чтобы увидеть, где мой RFIND() ставит меня происходит так:
What is the file name? mbox-short.txt
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
-DSPAM-
Я на самом деле не заинтересован в какой-либо помощи решить это, потому что я уже могу сделать это с помощью метода find() и просто подстройте для моего индекса, если необходимо, чтобы получить данные float(), которые мне нужно использовать.
Мой вопрос больше о самом rfind() и о том, правильно ли я его использую и/или что-то пропустил в документации относительно его использования. Когда я читал документы Python2.7, он утверждал, что его использование в точности похоже на find(), за исключением того, что он возвращает самый высокий индекс str. В моем случае это не так, оно просто подействовало как find() и вернуло самый низкий индекс.
Единственное, что я подумал о следующем, - это то, что оно теперь устарело, поскольку документы Python2.7 упоминают, что некоторые из этих методов на этой странице устарели.
Я не знаю. Кто-нибудь получил какой-то вклад? Или я просто становлюсь noob и получаю rfind() совершенно неправильно ???
Он возвращает индекс символа _first_ самого правильного совпадения. Вы, вероятно, путаете, думая, что он вернет индекс символа _last_ матча (которого он не будет). – Selcuk
Что он сказал. Кроме того, те _функции_ в модуле 'string' устарели, но эквивалентные' str.' * методы * ** не ** устарели. –