如何将输出重定向到clien

2024-04-20 00:04:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个比较新的Python程序员,我创建了以下XMLRPC服务器函数:

def shell(self, command, username):
    if username in loggedIn:
        return os.system(command)
    else:
        string = time.asctime() , " not logged in"
        string = "".join(string)
        return string

对于客户方面,我写了

command = raw_input ("$ ")
if command == "exit":
    exit()
else:
    server.shell(command, username)

但是,当我在客户端程序中运行命令时,输出将在服务器窗口而不是客户端窗口中,如下所示:

#client side
$ ls

#server side
#some results
localhost - - [14/Feb/2013 14:26:25] "POST /RPC2 HTTP/1.0" 200 -

cd命令也被破坏了(也就是说,即使发出命令,我也不能切换到其他目录)。有没有办法,如果有,怎么做?你知道吗


Tags: in命令服务器stringreturnifserverexit
1条回答
网友
1楼 · 发布于 2024-04-20 00:04:35

你知道吗操作系统不将输出返回到命令行,只返回代码。如果要捕获stdout/stderr,必须使用子流程.Popen. 然后还可以提供一个工作目录来执行命令(使用cwd参数)。据我所知,cd可能在shell中工作,但不会更改python实例的工作目录。所以下一个调用将不会在您更改到的目录中运行。使用Popen和cwd应该可以。你知道吗

相关问题 更多 >