Problem working with subprocess.check_call

INADA Naoki songofacandy at gmail.com
Thu Oct 29 05:57:04 EDT 2015


On Thu, Oct 29, 2015 at 6:52 PM, David Aldrich <David.Aldrich at emea.nec.com>
wrote:

> Hi
>
>
>
> I am working on Linux with Python 3.4.
>
>
>
> I want to do a bash diff on two text files and show just the first 20
> lines of diff’s output.  So I tried:
>
>
>
> >>> cmd = 'head -20 <(diff ' + file1 + ' ' + file2 + ')'
>
> >>> subprocess.check_call(cmd, shell=True)
>
>
>
> The command contained in cmd works ok from the bash prompt but not from
> Python code.  In Python I get:
>
>
>
> /bin/sh: -c: line 0: syntax error near unexpected token `('
>
>
>
> I think the problem is that check_call is not using the bash shell.  So I
> also tried:
>
>
>
> >>> subprocess.check_call("bash", "-O", "extglob", "-c", cmd)
>

Try this

subprocess.check_call(["bash", "-O", "extglob", "-c", cmd])


> Traceback (most recent call last):
>
>   File "<stdin>", line 1, in <module>
>
>   File "/usr/local/lib/python3.4/subprocess.py", line 556, in check_call
>
>     retcode = call(*popenargs, **kwargs)
>
>   File "/usr/local/lib/python3.4/subprocess.py", line 537, in call
>
>     with Popen(*popenargs, **kwargs) as p:
>
>   File "/usr/local/lib/python3.4/subprocess.py", line 767, in __init__
>
>     raise TypeError("bufsize must be an integer")
>
> TypeError: bufsize must be an integer
>
>
>
> Can anyone help me with this please?
>
>
>
> Best regards
>
>
>
> David
>
>
>
> --
> https://mail.python.org/mailman/listinfo/python-list
>
>


-- 
INADA Naoki  <songofacandy at gmail.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20151029/0c739394/attachment.html>


More information about the Python-list mailing list