Syntax Problem

dynamicOne
dynamicOne used Ask the Experts™
on
I have a Python script I am trying to run.

import commands
cmd = 'gpio read 1'
output = commands.getoutput(cmd)

if commands.getoutput(cmd) == 0:
   print ('The door is closed.')

When I run it, nothing happens. It just goes to the next line instead of printing.

Any idea what I am doing wrong?
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Awarded 2010
Top Expert 2013

Commented:
What are you trying to get it to do? commands.getoutput(cmd) is returning a non-zero value. What are you wanting it to return?

Author

Commented:
This is on a raspberry pi. It should return a value of 1 or 0.
Awarded 2010
Top Expert 2013

Commented:
So it is returning 1.
OWASP: Forgery and Phishing

Learn the techniques to avoid forgery and phishing attacks and the types of attacks an application or network may face.

Author

Commented:
Yes, it will return 1 when the door is open. Am I writing the condition statement wrong?
Awarded 2010
Top Expert 2013
Commented:
If it is supposed to return 1 when the door is open and 0 when the door is closed, then your condition is fine.

Whatever is happening, it is returning 1 and that's why you don't see any output.
You could try something like this to get a better idea of what is going on

import commands
cmd = 'gpio read 1'
output = commands.getoutput(cmd)

if output == 0:
   print ('The door is closed.')
elif output == 1:
   print ('The door is open.')
else:
   print ('Unexpected value %s' % output)

Open in new window


What happens when you just type gpio read 1 at the console?

Author

Commented:
When type gpio read 1 at the console it outputs 0 if the door is closed and 1 if it is opened

Author

Commented:
I found a script and was able to modify it to get what I want, is it okay with you if I post it here with my question or should I close this out and open another question?
Awarded 2010
Top Expert 2013

Commented:
Technically, you should start a new question if it is a different issue. That's a better way to get more eyes on the issue anyway.
Awarded 2010
Top Expert 2013

Commented:
I see the actual problem now that I saw the other script. You should have been checking if it was == to "0" instead of 0. But I think you see that now too.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial