Python error: subprocess.CalledProcessError: Command returned non-zero exit status 1

Viewed 22641

I need to count the lines of a shell-command output in python script.

This function works fine in case there is output, but in case the output is empty, it gives an error as explained in the error output.
I tried to avoid that using an if statement in case the output of the command is None, but that didn't help.

#!/usr/bin/python
import subprocess

lines_counter=0
func="nova list | grep Shutdown "
data=subprocess.check_output(func, shell=True)
if data is True:
       for line in data.splitlines():
               lines_counter +=1
print lines_counter

Error output:

data=subprocess.check_output(func, shell=True)
  File "/usr/lib/python2.7/subprocess.py", line 573, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command 'nova list | grep Shutdown ' returned non-zero exit status 1
3 Answers
Related