Я анализирую файл журнала доступа Apache с помощью python, и я хочу извлечь из него поле Referrer
. Referrer
находится на 9-й позиции, расщепляя его, используя пробел в качестве разделителя. (Все вместе есть более 9 полей после разделения с использованием пробелов.) После кода напишите извлеченный файл в файл.IndexError: индекс индекса вне диапазона-Python
for line in open('log'):
referer = line.split(' ')[9]
fo.write(referer +'\n')
Проблема: здесь поле referrer записывается в файл, но программа дает следующую ошибку? В чем может быть проблема?
Traceback (most recent call last):
File "temp.py", line 18, in <module>
referer = line.split(' ')[9]
IndexError: list index out of range
образец файла журнала строка:
112.135.128.20 - [13/May/2013:23:55:04 +0530] "GET /SVRClientWeb/ActionController HTTP/1.1" 302 2 "https://www.example.com/sample" "Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B329" GET /SVRClientWeb/ActionController - HTTP/1.1 www.test.com
Это означает, что не все линии выглядят одинаково. Вероятно, некоторые строки короче этого. – darxsys
Возможно, одна из строк закорочена, что нарушает ваш скрипт. –
Включите код try/except, который выводит строку, которая вызывает исключение, поэтому вы можете проверить, не соответствует ли эта строка шаблону. – jabaldonedo