避免在python搜索程序的文本文件中使用十六进制编码

2024-10-03 00:17:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经编写了一个python程序来分析服务器日志(文本文件),并找到与用户输入不匹配的字符串。无论如何,十六进制编码的字符串不被程序考虑。 例:在下面的例子中,程序说用户输入没有不匹配的值,尽管'www.peoplesmonton.com'可用。请帮我避免这个?你知道吗

for line in lines:
    match = re.search('\\b' + userinput + '\\b',line)

示例文本文件:

https://www.mysite.com/myworks/accaply/inquiry.asp 
http://www.peoplesmonton.com/amb/cgi-bin/bank/bank/ambt%20Bank%20Of%20Frnak%20PLC_asp.htm 
http://www.peoplesmonton.com/comblk/cgi-bin/bank/bank/ambt%20Bank%20Of%20ambt%20PLC_asp.htm 

Tags: 字符串用户程序服务器comhttpbinwww
1条回答
网友
1楼 · 发布于 2024-10-03 00:17:54

信息是用URL编码的,所以用urllib2.unquote来解码。你知道吗

>>> input = '''\
... https://www.mysite.com/myworks/accaply/inquiry.asp 
... http://www.peoplesmonton.com/amb/cgi-bin/bank/bank/ambt%20Bank%20Of%20Frnak%20PLC_asp.htm 
... http://www.peoplesmonton.com/comblk/cgi-bin/bank/bank/ambt%20Bank%20Of%20ambt%20PLC_asp.htm 
... '''
>>> import urllib2
>>> print urllib2.unquote(input)
https://www.mysite.com/myworks/accaply/inquiry.asp 
http://www.peoplesmonton.com/amb/cgi-bin/bank/bank/ambt Bank Of Frnak PLC_asp.htm 
http://www.peoplesmonton.com/comblk/cgi-bin/bank/bank/ambt Bank Of ambt PLC_asp.htm 

相关问题 更多 >