Cambiar carácter de nueva línea .readline () busca

¿Es posible cambiar el carácter de nueva línea que busca el método .readline() al leer líneas? Es posible que tenga la necesidad de leer una secuencia de un objeto de archivo que se delimitará en otra cosa que no sean nuevas líneas y podría ser útil obtener una parte a la vez. file objetos de file no tienen una readuntil que no tendría que crear si pudiera usar readline

EDITAR:


Todavía no lo he probado en una tubería que no sea stdin ; pero esto parece funcionar.

 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) 

uso:

 >>> 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" >>> 

No.

Considere la posibilidad de crear un generador utilizando file.read() y file.read() fragmentos delimitados por un carácter determinado.

Editar:

La muestra que proporcionaste debería funcionar bien. Sin embargo, preferiría usar un generador:

 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()