Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中解析Linux终端错误消息?_Python_Linux - Fatal编程技术网

如何在Python中解析Linux终端错误消息?

如何在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

我已经编写了一个小的Python代码,用于在更大的项目中测试它。如果一切正常,子流程工作得很好。但我想分析输出错误消息中的特定错误,以便找出错误是什么,例如-IP不在网络中,或者错误的用户名、错误的密码。 即使最后的打印也不起作用。但是我的兴趣是不要打印这些。我只是在检查解析是否有效

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运行您的代码,但是使用双引号很好-试试看。