是否可以更改 .readline()
方法在读取行时查找的换行符?我可能需要从一个文件对象中读取一个流,该文件对象将以换行符以外的其他方式分隔,并且一次获取一个 block 可能很方便。 file
对象没有 readuntil
如果我可以使用 readline
编辑:
我还没有在 stdin
以外的管道上尝试过;但这似乎有效。
class cfile(file):
def __init__(self, *args):
file.__init__(self, *args)
def readuntil(self, char):
buf = bytearray()
while True:
rchar = self.read(1)
buf += rchar
if rchar == char:
return str(buf)
用法:
>>> import test
>>> tfile = test.cfile('/proc/self/fd/0', 'r')
>>> tfile.readuntil('0')
this line has no char zero
this one doesn't either,
this one does though, 0
"this line has no char zero\nthis one doesn't either,\nthis one does though, 0"
>>>
最佳答案
没有。
考虑使用 file.read()
创建生成器并生成由给定字符分隔的 block 。
编辑:
您提供的示例应该可以正常工作。不过我更愿意使用生成器:
def chunks(file, delim='\n'):
buf = bytearray(),
while True:
c = self.read(1)
if c == '': return
buf += c
if c == delim:
yield str(buf)
buf = bytearray()
关于python - 更改换行符 .readline() 查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6284468/