subprocess.Popen strange bhaviour
Hi, I am using subprocess.Popen to start a movie ripping command HandBrakeCLI. My server is 64bit ubuntu server and has 8 cores. When the command starts it uses all 8 cores upto 80%-100% and works fine, but after 270 seconds the cpu usage of all the cores drops to 0% - 1%. I tried this many time this happens exactly after 270 seconds. Is there some predefined timeout?? -- Mac -- http://mail.python.org/mailman/listinfo/python-list
reading multiline output
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. output Description: Binary data -- Thanks Mac-- http://mail.python.org/mailman/listinfo/python-list
Re: reading multiline output
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. -- http://mail.python.org/mailman/listinfo/python-list
Re: reading multiline output
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 -- http://mail.python.org/mailman/listinfo/python-list