Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #17765 > unrolled thread
| Started by | Mac Smith <macsmith.us@gmail.com> |
|---|---|
| First post | 2011-12-23 07:35 +0530 |
| Last post | 2011-12-23 07:35 +0530 |
| Articles | 1 — 1 participant |
Back to article view | Back to comp.lang.python
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: reading multiline output Mac Smith <macsmith.us@gmail.com> - 2011-12-23 07:35 +0530
| From | Mac Smith <macsmith.us@gmail.com> |
|---|---|
| Date | 2011-12-23 07:35 +0530 |
| Subject | Re: reading multiline output |
| Message-ID | <mailman.4011.1324605938.27778.python-list@python.org> |
On 23-Dec-2011, at 6:48 AM, MRAB wrote: > On 23/12/2011 01:07, Mac Smith wrote: >> >> On 23-Dec-2011, at 6:17 AM, MRAB wrote: >> >>> On 23/12/2011 00:33, Mac Smith wrote: >>>> Hi, >>>> >>>> >>>> I have started HandBrakeCLI using subprocess.popen but the output >>>> is multiline and not terminated with \n so i am not able to read >>>> it using readline() while the HandBrakeCLI is running. kindly >>>> suggest some alternative. i have attached the output in a file. >>>> >>> The lines are terminated with \r, so read with read() and then >>> split on "\r". >> >> read() will read the complete output and than i will be able to parse >> it, i want to read the output of the command in realtime. >> > Try telling it how much to read with read(size): > > def read_lines(output, line_ending="\n"): > buffer = "" > > while True: > chunk = output.read(1024) > if not chunk: > break > > buffer += chunk > > while True: > pos = buffer.find(line_ending) > if pos < 0: > break > > pos += len(line_ending) > yield buffer[ : pos] > buffer = buffer[pos : ] > > if buffer: > yield buffer > -- > http://mail.python.org/mailman/listinfo/python-list thanks, this helped. just need to correct line_ending="\n" should be line_ending="\r"
Back to top | Article view | comp.lang.python
csiph-web