AsyncSSH在Python中将输出保存到列表
我尝试使用AsyncSSH模块执行命令并捕获输出以进行进一步处理。我是按照上面的示例进行操作的,但是它们都打印()结果,我想将其保存为列表。在Python3.5中我将如何做到这一点?我试图通过添加getdata()来修改该类,该类将返回“out”列表,但它似乎不起作用AsyncSSH在Python中将输出保存到列表,python,ssh,Python,Ssh,我尝试使用AsyncSSH模块执行命令并捕获输出以进行进一步处理。我是按照上面的示例进行操作的,但是它们都打印()结果,我想将其保存为列表。在Python3.5中我将如何做到这一点?我试图通过添加getdata()来修改该类,该类将返回“out”列表,但它似乎不起作用 import asyncio, asyncssh, sys class MySSHClientSession(asyncssh.SSHClientSession): out = [] def data_re
import asyncio, asyncssh, sys
class MySSHClientSession(asyncssh.SSHClientSession):
out = []
def data_received(self, data, datatype):
if datatype == asyncssh.EXTENDED_DATA_STDERR:
print(data, end='', file=sys.stderr)
else:
#print(data, end='')
self.out.append(data)
def connection_lost(self, exc):
if exc:
print('SSH session error: ' + str(exc), file=sys.stderr)
def getdata(self):
return self.out
async def run_client(zone, cmd):
async with asyncssh.connect(zone, password='xxx', username='xxx', known_hosts=None) as conn:
chan, session = await conn.create_session(MySSHClientSession, cmd)
await chan.wait_closed()
try:
x = asyncio.get_event_loop().run_until_complete(run_client('fetish', 'sudo fl-service status'))
# the code to process x would go here
print(x.getdata())
except (OSError, asyncssh.Error) as exc:
sys.exit('SSH connection failed: ' + str(exc))
你找到办法了吗?你找到办法了吗?