Я новичок в python, изучая основы.
Мой запрос: У меня есть несколько страниц, которые доступны как запрос из файла журнала, как показано ниже,
"GET /img/home/search-user-ico.jpg HTTP/1.1"
"GET /SpellCheck/am.tlx HTTP/1.1"
"GET /img/plan-comp-nav.jpg HTTP/1.1"
"GET /ie6.css HTTP/1.1"
"GET /img/portlet/portlet-content-bg.jpg HTTP/1.1"
"GET /SpellCheck/am100k2.clx HTTP/1.1"
"GET /SpellCheck/am.tlx HTTP/1.1"
Мой вопрос: я хочу только часть файла со страницы,
Например,
Рассмотрим "GET /img/home/search-user-ico.jpg HTTP/1.1" ,"GET /ie6.css HTTP/1.1"
как страницу, а затем из вышеизложенного хочу разделить search-user-ico.jpg HTTP
, ie6.css HTTP
.
поэтому эксперты, пожалуйста, помогите мне написать python script для вышеперечисленного.
Предполагая, что у вас нет пробелов в именах файлов и что вы не хотите "HTTP" в конце.
Вы можете разделить строку по пробелам.
parts = line.split(" ")
а затем используйте модуль os
, чтобы получить имя файла из пути.
filename = os.path.basename(parts[1])
Например.
>>> line = "GET /img/home/search-user-ico.jpg HTTP/1.1"
>>> parts = line.split(" ")
>>> parts[1]
'/img/home/search-user-ico.jpg'
>>> os.path.basename(parts[1])
'search-user-ico.jpg'
entries
являются списком / кортежем записей: filenames = [os.path.basename(entry.split()[1]) for entry in entries]
data = [
"GET /img/home/search-user-ico.jpg HTTP/1.1",
"GET /SpellCheck/am.tlx HTTP/1.1",
"GET /img/plan-comp-nav.jpg HTTP/1.1" ,
"GET /ie6.css HTTP/1.1",
"GET /img/portlet/portlet-content-bg.jpg HTTP/1.1",
"GET /SpellCheck/am100k2.clx HTTP/1.1" ,
"GET /SpellCheck/am.tlx HTTP/1.1"
]
for url in data:
print url.split(' ')[1].split('/')[-2]
Если формат ваших ссылок аналогичен. Другое решение:
request = "GET /img/home/search-user-ico.jpg HTTP/1.1"
parts = request.split("/")
parts[-2] //returns search-user-ico.jpg HTTP
data = [
"GET /img/home/search-user-ico.jpg HTTP/1.1",
"GET /SpellCheck/am.tlx HTTP/1.1",
"GET /img/plan-comp-nav.jpg HTTP/1.1" ,
"GET /ie6.css HTTP/1.1",
"GET /img/portlet/portlet-content-bg.jpg HTTP/1.1",
"GET /SpellCheck/am100k2.clx HTTP/1.1" ,
"GET /SpellCheck/am.tlx HTTP/1.1"
]
for url in data:
print url.split(' ')[1].split('/')[-1]