6
可以在讀取行時更改換行符.readline()
方法的查找方式嗎?我可能需要從一個文件對象中讀取一個流,這個文件對象會被換行符以外的分隔符所替代,並且它可以方便地一次獲得一個塊。 file
對象沒有一個readuntil
,我就不會去創造,如果我可以使用readline
更改換行符.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'對象。 – tMC 2011-06-08 21:12:34
正如目前所寫,如果文件不以'delim'結尾,這將不會產生任何尾隨字符。也許最好使用'if c =='':return str(buf)'。 – martineau 2015-01-11 15:42:21