我有一个代码的价格,将文件从服务器传输到本地机器.但是,用户输入的目录可能并不总是正确的.如果用户输入错误的目录,我试图显示错误.如果returncode不是None,我将显示错误.但这不起作用.无论程序抛出什么,它总是会else分开.
#!/usr/bin/python
import subprocess
result = subprocess.Popen(['sshpass', '-p', 'password', 'rsync', '-avz', '--info=progress2', 'username@host_name:/file_name', '/home/zurelsoft/test'],
stdout=subprocess.PIPE)
if result.returncode != None:
print "Directory Incorrect"
else:
print "Done"
print result
Run Code Online (Sandbox Code Playgroud)
luc*_*luc 13
subprocess.Popen返回一个对象(在您的情况下为结果变量).您需要调用此对象poll的wait方法或方法来设置返回码状态.然后你可以检查一下result.returncode
请参阅http://docs.python.org/2/library/subprocess.html#subprocess.Popen.returncode
子返回码,由poll()和wait()设置(间接由communic()设置)."无"值表示该进程尚未终止.