我想仅打印下面这段输出中包含“Server”的行:
现在,上面的代码打印出与我帖子开头描述的完全相同的文本块。我不知道为什么会这样...
正如我所说,我只想打印包含“服务器”一行的内容,如果可能的话,不使用正则表达式。如果不可能,就使用正则表达式。
请帮忙,谢谢!
编辑:到目前为止,我完整的代码已经贴在这里:http://pastebin.com/sYuZyvX9 编辑2:为了完整起见,在hosts.txt中当前有1个名为“google.com”的主机。
更新
我的代码实际上运行得很好,但是我其他代码的一个错误确保将放入列表websiteheaders中的数据变成了1个大字符串,而不是多个条目。在上面的代码中,它当然会找到“服务器”并打印整个条目,而在我的情况下,这是完整的(大)字符串。
对我来说,使用
websiteheaders.extend(headers.splitlines())
而不是
websiteheaders.append(headers)
就可以解决问题了。非常感谢。
Date: Sun, 16 Dec 2012 20:07:44 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Set-Cookie: PREF=ID=da8d52b67e5c7522:FF=0:TM=1355688464:LM=1355688464:S=CrK5vV-qb3UgWUM1; expires=Tue, 16-Dec-2014 20:07:44 GMT; path=/; domain=.google.com
Set-Cookie: NID=67=nICkwXDM6H7TNQfHbo06FbvZhO61bzNmtOn4HA71ukaVDSgywlBjBkAR-gXCpMNo1TlYym-eYMUlMkCHVpj7bDRwiHT6jkr7z4dMrApDuTk_HuTrZrkoctKlS7lXjz9a; expires=Mon, 17-Jun-2013 20:07:44 GMT; path=/; domain=.google.com; HttpOnly
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
Server: gws
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Connection: close
这些信息是从一个名为websiteheaders的列表中获取的。我有下面一段代码,让我非常疯狂,因为它没有正常工作...
for line in websiteheaders:
if "Server" in line:
print line
现在,上面的代码打印出与我帖子开头描述的完全相同的文本块。我不知道为什么会这样...
正如我所说,我只想打印包含“服务器”一行的内容,如果可能的话,不使用正则表达式。如果不可能,就使用正则表达式。
请帮忙,谢谢!
编辑:到目前为止,我完整的代码已经贴在这里:http://pastebin.com/sYuZyvX9 编辑2:为了完整起见,在hosts.txt中当前有1个名为“google.com”的主机。
更新
我的代码实际上运行得很好,但是我其他代码的一个错误确保将放入列表websiteheaders中的数据变成了1个大字符串,而不是多个条目。在上面的代码中,它当然会找到“服务器”并打印整个条目,而在我的情况下,这是完整的(大)字符串。
对我来说,使用
websiteheaders.extend(headers.splitlines())
而不是
websiteheaders.append(headers)
就可以解决问题了。非常感谢。
for line in websiteheaders:
循环之前打印print len(websiteheaders)
,你会得到什么?实际上,print repr(websiteheaders)
会给出什么结果?(您可以将输出编辑到您的问题中。) - DSMwebsiteheaders
是一个列表,但它的第一个元素是一个长字符串。因此,由于Server
在该字符串中,它会通过并打印出来。请使用websiteheaders.extend(headers.splitlines())
代替websiteheaders.append(headers)
,这样你就有了一个包含每行的列表。 - DSM