【发布时间】:2013-03-22 02:09:51
【问题描述】:
背景
作为一个有趣的项目,我决定为我的新树莓派创建一个远程控制应用程序。我知道如何使用 SSH,但我想在 Python 中实现类似的东西。如何让打印到终端上的文本显示在我的 Python shell 中?
我查看了this SO question,但没有成功。没有工作,我的意思是我无法看到输出文本。如果我输入passwd,它只会给我
Changing password for User.
但它没有给我交互式会话。 那是我想要弄清楚的。
注意:我的 Raspberry Pi 在“Wheezy”上运行。此外,如果该程序可以与其他操作系统(如 Windows 7、Mac OS X)一起使用,那就太好了。
代码
import subprocess
import socket
import sys
import platform
import os
print "WELCOME TO xTROL. \n"
pyVER = sys.version
OS = platform.system()
print pyVER, "\n"
print "Running on %s" % (OS)
while True:
INPUT = raw_input(">>>")
cmd_FORMAT = INPUT.split()
try:
output = subprocess.Popen(cmd_FORMAT, stdout=subprocess.PIPE).communicate()[0]
print output
except Exception:
print "Something went wrong."
【问题讨论】:
-
你说的“但是没有用”是什么意思?
-
你能告诉我们你在做什么,以便我们帮助诊断吗?
-
cmd未在此代码中定义。否则,除非您的命令在标准输出中没有输出任何内容,否则它应该可以工作。 -
对我来说它适用于简单的命令(当然通过将 cmd_FORMAT 更改为 cmd),但我认为它有复杂命令行的错误。您可以向我们展示您尝试运行的命令是什么。
-
是的,这是意料之中的。交互式程序不能以这种方式工作。
标签: python subprocess raspberry-pi