How to catch exception output from Python subprocess.check_output()?

后端 未结 7 1166
灰色年华
灰色年华 2020-11-29 00:35

I\'m trying to do a Bitcoin payment from within Python. In bash I would normally do this:

bitcoin sendtoaddress  
         


        
7条回答
  •  醉酒成梦
    2020-11-29 01:01

    Trying to "transfer an amount larger than my bitcoin balance" is not an unexpected error. You could use Popen.communicate() directly instead of check_output() to avoid raising an exception unnecessarily:

    from subprocess import Popen, PIPE
    
    p = Popen(['bitcoin', 'sendtoaddress', ..], stdout=PIPE)
    output = p.communicate()[0]
    if p.returncode != 0: 
       print("bitcoin failed %d %s" % (p.returncode, output))
    

提交回复
热议问题