我是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脚本来分割。
答案 0 :(得分:2)
假设文件名中没有空格,并且最后不想要“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'
答案 1 :(得分:1)
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]
答案 2 :(得分:0)
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]
答案 3 :(得分:0)
如果您的链接格式相似。另一种解决方案是:
request = "GET /img/home/search-user-ico.jpg HTTP/1.1"
parts = request.split("/")
parts[-2] //returns search-user-ico.jpg HTTP