在python中以字符串形式读取文件对象

在python中以字符串形式读取文件对象,python,file,urllib2,Python,File,Urllib2,我正在使用urllib2阅读页面。我需要对源代码执行一个快速正则表达式并提取一些变量,但是urllib2显示为文件对象而不是字符串 我是python新手,所以我很难理解如何使用文件对象来实现这一点。有没有快速的方法将其转换为字符串?您可以在交互模式下使用Python搜索解决方案 如果f是您的对象,则可以输入dir(f)查看所有方法和属性。有一个叫做read。输入help(f.read)它告诉您f.read()是从文件对象检索字符串的方法。从文档(我的重点): file.read([size])

我正在使用
urllib2
阅读页面。我需要对源代码执行一个快速正则表达式并提取一些变量,但是
urllib2
显示为文件对象而不是字符串


我是python新手,所以我很难理解如何使用文件对象来实现这一点。有没有快速的方法将其转换为字符串?

您可以在交互模式下使用Python搜索解决方案

如果
f
是您的对象,则可以输入
dir(f)
查看所有方法和属性。有一个叫做
read
。输入
help(f.read)
它告诉您
f.read()
是从文件对象检索字符串的方法。

从文档(我的重点):

file.read([size])

从文件中最多读取大小字节(如果读取在获取大小字节之前达到EOF,则读取量会减少)。如果size参数为负数或省略,则读取所有数据,直到达到EOF字节作为字符串对象返回。当立即遇到EOF时,返回一个空字符串。(对于某些文件,如TTY,在点击EOF后继续读取是有意义的。)注意,此方法可能多次调用底层C函数fread,以获取尽可能接近大小的字节。还请注意,在非阻塞模式下,即使未给出大小参数,返回的数据也可能少于请求的数据


注意,对一个大字符串对象的ReGEXP搜索可能不是有效的,并且考虑逐行执行,使用(文件对象是它自己的迭代器)。

< P> Michael Foord,aka Voidspace有一个关于URLLIB2的优秀教程,您可以在这里找到:

您所做的应该非常简单,请遵守以下示例代码:

import urllib2
import re
response = urllib2.urlopen("http://www.voidspace.org.uk/python/articles/urllib2.shtml")
html = response.read()
pattern = '(V.+space)'
wordPattern = re.compile(pattern, re.IGNORECASE)
results = wordPattern.search(html)
print results.groups()

感谢您的深入回答(特别是关于查找对象属性/方法的问题)。read()工作得很好,“鱼的教学”学校给出了很好的答案。如果可以,我会给你+2!有时我们只想把stackoverflow用作一本快速参考书。gimel的答案对谷歌人来说更有用。