bufsize in subprocess

Chris Rebert clp2 at rebertia.com
Sun Jan 22 02:27:54 EST 2012


On Sat, Jan 21, 2012 at 9:45 PM,  <yves at zioup.com> wrote:
> Is this the expected behavior?

Yes. `.read()` [with no argument] on a file-like object reads until
EOF. See http://docs.python.org/library/stdtypes.html#file.read

> When I run this script, it reads only once, but I expected once per line
> with bufsize=1.

You want proc.stdout.readline().
http://docs.python.org/library/stdtypes.html#file.readline

> What I am trying to do is display the output of a slow process in a tkinter
> window as it runs. Right now, the process runs to completion, then display
> the result.
>
>    import subprocess
>
>    com = ['/bin/ls', '-l', '/usr/bin']
>    with subprocess.Popen(com, bufsize=1, stdout=subprocess.PIPE,
> stderr=subprocess.STDOUT) as proc:
>        print('out: ' + str(proc.stdout.read(), 'utf8'))

Cheers,
Chris



More information about the Python-list mailing list