如何在Python中解析Linux终端错误消息?
我已经编写了一个小的Python代码,用于在更大的项目中测试它。如果一切正常,子流程工作得很好。但我想分析输出错误消息中的特定错误,以便找出错误是什么,例如-IP不在网络中,或者错误的用户名、错误的密码。 即使最后的打印也不起作用。但是我的兴趣是不要打印这些。我只是在检查解析是否有效如何在Python中解析Linux终端错误消息?,python,linux,Python,Linux,我已经编写了一个小的Python代码,用于在更大的项目中测试它。如果一切正常,子流程工作得很好。但我想分析输出错误消息中的特定错误,以便找出错误是什么,例如-IP不在网络中,或者错误的用户名、错误的密码。 即使最后的打印也不起作用。但是我的兴趣是不要打印这些。我只是在检查解析是否有效 import sys import subprocess import os ip = "192.168.1.20" password = "password" username = "sam" ans = su
import sys
import subprocess
import os
ip = "192.168.1.20"
password = "password"
username = "sam"
ans = subprocess.check_output(['sudo','xfreerdp','-p',password, ip])
for line in ans.split('\n'):
if "protocol security negotiation" in line:
print "Not Windows!"
print "JUST TO test if this print works and it doesnt!!"
您需要重定向STDERR以检查打印到它的消息。加:
子进程。检查_输出(['sudo','xfreerdp','-p',password,ip],stderr=subprocess.STDOUT)
尝试使用Try
import sys
import subprocess
import os
ip = "192.168.1.20"
password = "password"
username = "sam"
try:
ans = subprocess.check_output(['sudo','xfreerdp','-p',password, ip])
except subprocess.CalledProcessError as e:
ans = e.output
for line in ans.split('\n'):
if "protocol security negotiation" in line:
print "Not Windows!"
print "JUST TO test if this print works and it doesnt!!"
您正在运行哪个版本的python?我正在使用Python2.7运行您的代码,但是使用双引号很好-试试看。