[Tutor] Confirmation if command worked
Christian Witts
cwitts at compuscan.co.za
Thu Aug 25 10:37:21 CEST 2011
On 2011/08/25 10:19 AM, Alan Gauld wrote:
> On 25/08/11 07:25, Christian Witts wrote:
>
>> Once you call child.close() the exit and signal status will be stored in
>> .exitstatus and .signalstatus, for a normal exit of the program
>> .exitstatus will store the return code from SCP as per [1] [2] [3] and
>> .signalstatus will be None. If SCP was terminated with a signal then
>> .exitstatus will be None and .signalstatus will contain the signal
>> value. Info found in the docs [4].
>>
>> data = child.read()
>> child.close()
>>
>> if child.exitstatus and child.exitstatus == 0:
>> success = True
>> else:
>> success = False
>
> Won't that if statement always evaluate to false?
>
> If exitstatus is 0 the first part of the and will be false and so the
> entire and expression is false.
>
> If exitstatus is not 0 then the second part of the and will be false
> and again the and result will be false.
>
> Did you mean to use exitstatus for both tests?
>
> Or am I missing something subtle here?
>
Good catch, it should be `if child.exitstatus != None and
child.exitstatus == 0:` or removing the first part entirely. The
zero-evaluating-as-False has bitten me before and for some reason I
still on occasion forget it even though I use it often for data extracts.
--
Christian Witts
Python Developer
//
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20110825/fc9a959a/attachment.html>
More information about the Tutor
mailing list