可爱的 Python:Python中的文本处理
2007-03-29 12:01:33 来源:WEB开发网核心提示: .readline() 和 .readlines() 之间的差异是后者一次读取整个文件,象 .read() 一样,可爱的 Python:Python中的文本处理(4),.readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for ... in ...
.readline() 和 .readlines() 之间的差异是后者一次读取整个文件,象 .read() 一样。.readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for ... in ... 结构进行处理。另一方面,.readline() 每次只读取一行,通常比 .readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用 .readline()。
如果正在使用处理文件的标准模块,可以使用 cStringIO 模块将字符串转换成“虚拟文件”(如果需要生成模块的子类,可以使用 StringIO 模块,初学者未必要这样做)。例如:
cStringIO 模块
>>>
import
cStringIO
>>> fh = cStringIO.StringIO()
>>> fh.write(
"mary had a little lamb")
>>> fh.getvalue()
'mary had a little lamb'
>>> fh.seek(5)
>>> fh.write(
'ATE')
>>> fh.getvalue()
'mary ATE a little lamb'
但是,请记住,cStringIO“虚拟文件”不是永久的,这一点与真正的文件不同。如果不保存它(如将它写入一个真正的文件,或者使用 shelve 模块或数据库),则程序结束时,它将消失。
标准模块:string
string 模块也许是 Python 1.5.* 标准发行版中最常用的模块。实际上,在 Python 1.6 或更高版本中,string 模块中的功能将作为内置字符串方法(在撰写本文时,详细信息尚未发布)。当然,任何执行文本处理任务的程序也许应该用以下这行开头:
开始使用 string 的方法
更多精彩
赞助商链接