练习14.5,“思考Python”(Allen Downey)

时间:2012-06-25 06:20:23

标签: python urllib

我是第一次使用StackOverflow的程序员,从Allen Downey's free online text "Think Python"学习。

此处显示的代码来自练习14.5(第143页)。我一直试图找出.fp的作用;我的搜索都空了。我使用和不使用代码运行代码,并没有注意到结果的任何差异。我很感激任何人的帮助。

import urllib

conn = urllib.urlopen('http://thinkpython.com/secret.html')

for line in conn.fp:
    print line.strip()

3 个答案:

答案 0 :(得分:5)

它只是附加到套接字对象的虚假文件对象。

阅读docstring:

>>> help(conn.fp)

答案 1 :(得分:4)

urllib.urlopen返回一个Request对象,该对象具有.fp(文件指针)作为属性。默认情况下,迭代时的Request对象使用相同的指针,因此没有功能差异。

答案 2 :(得分:3)

如前所述,它是一个文件指针,在这个例子中并不是真的需要,因为conn返回的对象urlopen()已经是一个类似文件的对象,你可以调用readlines()在它上面。

如果将示例更改为:

,我认为这会减少混淆
import urllib

conn = urllib.urlopen('http://thinkpython.com/secret.html')

for line in conn.readlines():
    print line.strip()
相关问题