【发布时间】:2018-06-09 12:53:48
【问题描述】:
我有一个包含以下内容的测试代码:
with open('master.log') as f:
print(f.read(8))
print(f.read(8))
这打印为:
>> pi@raspberrypi:~/workspace/Program $ sudo python test.py
>> 12/29/20
>> 17 12:52
如您所见,这有不同的印刷品。但是,当我这样做时:
import cStringIO
stream= "1234567890"
print(cStringIO.StringIO(stream).read(8))
print(cStringIO.StringIO(stream).read(8))
当我运行它时,我得到以下输出:
>> pi@raspberrypi:~/workspace/Program $ sudo python test.py
>> 12345678
>> 12345678
在这种情况下,它输出相同的值(搜索器不前进)。
我需要这样做,以便 cStringIO(或类似的解决方案)以与文件相同的方式读取字符串。我的意思是每次读取都不会重置位置。
【问题讨论】:
-
每次运行
cStringIO.StringIO(stream)时都会创建一个全新的 StringIO 对象。如果您两次使用相同的位置,则会保留该位置。