当前位置:  开发笔记 > 编程语言 > 正文

在python中将文件对象读为字符串

如何解决《在python中将文件对象读为字符串》经验,为你挑选了3个好方法。

我正在urllib2阅读页面.我需要在源代码上做一个快速的正则表达式并提取一些变量但是urllib2作为文件对象而不是字符串呈现.

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



1> stesch..:

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

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


"教学到鱼"学校的优秀答案.如果可以,我会给你+2!
有时我们只想使用stackoverflow作为快速参考书.gimel的答案对googlers来说更有用.
感谢您的深入解答(特别是关于查找对象属性/方法)..read()工作得很好.

2> gimel..:

来自doc file.read()(我的重点):

file.read([大小])

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

请注意,对大型字符串对象进行regexp搜索可能效率不高,并考虑使用file.next()逐行进行搜索(文件对象是其自己的迭代器).



3> t3rse..:

Michael Foord,又名Voidspace有一个关于urllib2的优秀教程,你可以在这里找到: urllib2 - The Missing Manual

您正在做的事情应该非常简单,请观察以下示例代码:

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()

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有