我正在尝试遍历互联网上的 html 文件。
target = br.response().read()
for row in target:
if "[some text]" in row:
print next(target)
问题是这个循环遍历 html 文件中的每个字符,所以它永远找不到匹配项。我如何让它遍历每一行?
我试过target = target.splitlines()
了,但这确实弄乱了文件。
我正在尝试遍历互联网上的 html 文件。
target = br.response().read()
for row in target:
if "[some text]" in row:
print next(target)
问题是这个循环遍历 html 文件中的每个字符,所以它永远找不到匹配项。我如何让它遍历每一行?
我试过target = target.splitlines()
了,但这确实弄乱了文件。
您基本上想要实现的是以下内容(从文件中读取,如您的标题所示):
#!/usr/bin/env python
import sys
with open("test.txt") as file:
for line in file:
if "got" in line:
print "found: {0}".format(line)
你想打开你的文件("test.txt")
。
您阅读每一行 ( for .. in
)
并查看该行是否包含一个字符串,这in
很好:)
如果您对行号感兴趣:
for index, line in enumerate(file):
但要注意索引从 0 开始,所以当前行号是index+1
模拟,如果您想从 String 作为文件读取,请查看StringIO。
查看您正在查看的文件的页面源代码,因为这是您作为响应返回的内容。我有一种感觉,你得到的回应实际上并没有你想要的新行。对于像http://docs.python.org/这样源代码可读的页面,您的 splitline() 方法效果很好,但对于源代码基本上没有换行符的网站,例如 Google 的主页,它更接近您的问题'正在经历。
根据您要实现的目标,最好的选择可能是使用像 lxml 这样的 html/xml 解析库。否则使用re可能是一种非常安全的方法。两者都比试图猜测应该在哪里换行要好得多。