StringIO-将字符串当做文件处理

StringIO将字符串当做文件处理,十分方便

>>> from StringIO import StringIO
>>> file_like_string = StringIO()
>>> file_like_string.write("hello
")  #写入数据
>>> file_like_string.write("world
")
>>> file_like_string.write("I am StringIO
")
>>> dir(file_like_string)
['__doc__', '__init__', '__iter__', '__module__', 'buf', 'buflist', 'close', 'closed', 'flush', 'getvalue', 'isatty', 'len', 'next', 'pos', 'read', 'readline', 'readlines', 'seek', 'softspace', 'tell', 'truncate', 'write', 'writelines']
>>> file_like_string.getvalue() #获取StringIO中包含的所有数据,与当前读写位置无关
'hello
world
I am StringIO
'
>>> file_like_string.tell() #获取当前读写位置
26
>>> file_like_string.read() #从末尾开始读取
''
>>> file_like_string.seek(0) #定位到开头
>>> file_like_string.read() #读取所有数据
'hello
world
I am StringIO
'
>>> file_like_string.seek(0)
>>> file_like_string.readline() #一次读取一行
'hello
'
>>> file_like_string.readline()
'world
'
>>> file_like_string.seek(0)
>>> file_like_string.readlines() #读取所有行放入列表中
['hello
', 'world
', 'I am StringIO
']
>>> file_like_string.seek(0)
>>> for line in file_like_string:  #StringIO对象可迭代,__iter__
...     print line.strip()
... 
hello
world
I am StringIO
>>> file_like_string.seek(6)   #定位,起始位置偏移量为0
>>> file_like_string.getvalue()
'hello
world
I am StringIO
'
>> file_like_string.len  #获取内部字符串长度
26
>>> file_like_string.truncate() #从指定位置开始截断数据
>>> file_like_string.getvalue()
'hello
'
>> file_like_string.len
6
>>> file_like_string.close() #关闭StringIO对象
原文地址:https://www.cnblogs.com/hupeng1234/p/6713316.html