簡體   English   中英

打印包含“word”python的行

[英]Print line containing “word” python

我想在下面的輸出中只打印包含“Server”的行:

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

現在,上面這段代碼打印的內容完全與我文章開頭描述的文本塊完全相同。 我只是似乎沒有得到它為什么這樣做...

正如我所說的,我只想打印包含“Server”的行,如果可能的話沒有正則表達式。 如果不可能,使用正則表達式。

請幫忙,謝謝!

編輯:到目前為止我的完整代碼粘貼在這里: http ://pastebin.com/sYuZyvX9編輯2:為了完整性,在hosts.txt目前有1個主機名為“google.com”

更新

我的代碼實際上運行正常,但是我的另一段代碼中存在錯誤,這確保了放入列表網站標題的數據是1個大字符串而不是多個條目。 在上面的代碼中,它將找到“Server”並打印整個條目,在我的例子中是完整的(大)字符串。

運用

websiteheaders.extend(headers.splitlines())

代替

websiteheaders.append(頭)

為我做了訣竅。 非常感謝你們。

websiteheaders真的是一個分為非常線的列表嗎? 因為如果它是一個字符串你應該使用:

for line in websiteheaders.splitlines():
    if "Server" in line:
        print line

另外,一個很好的提示:我建議在遇到這類問題時添加一些print -statements。 如果您要添加以下內容:

else:
    print 'WRONG LINE:', line

你可能會發現這個循環沒有循環遍歷每一行而是遍歷每個字符。

更新

我不能告訴你的代碼有什么問題。 這就是我得到的:

In [3]: websiteheaders
Out[3]: 
['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"']

In [4]: for line in websiteheaders:
   ...:     if 'Server' in line:
   ...:         print line
   ...:         
Server: gws
for single_line in websiteheaders.splitlines():
    if `Server` in single_line:
        print single_line

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM