首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有python问题的多个"gnome-terminal“

带有python问题的多个"gnome-terminal“
EN

Stack Overflow用户
提问于 2013-05-03 17:20:01
回答 1查看 1.1K关注 0票数 0

我正在编写一个python程序,它运行以下代码:

代码语言:javascript
复制
import subprocess
import time


def fun1():
    terminal1 = ['gnome-terminal']
    terminal1.extend(['-x', 'sh', '-c', '"roscore"'])
    pid = subprocess.Popen(terminal1, stdout=subprocess.PIPE)
    time.sleep(3)
    print "success1"
    fun2()





def fun2():
    terminal2 = ['gnome-terminal']
    terminal2.extend(['-x', 'sh', '-c', '"rosrun rosserial_python serial_node.py /dev/ttyACM0"' ])

    pid2 = subprocess.Popen(terminal2, stdout=subprocess.PIPE)
    print "success2"

fun1()

fun1工作正常,我等待了3秒,因为它会持续一段时间,直到所有事情都完成了,这样fun2才能工作(我不能同时启动这两个程序,fun2必须等待fun1,这永远不会在fun2之前结束)

问题出现在运行fun2的时候,我不知道哪里出了错,是和fun1中的“相同”代码,但gnome终端只出现了几毫秒,然后就消失了……

有什么建议吗?

提前谢谢你

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-03 17:48:49

问题可能与"有关。在将参数列表传递给子进程时,不需要使用这些参数。它将在运行前被正确转义。

窗口正在关闭,因为生成的命令可能格式不正确,因此会生成错误并立即退出。

因此,如果您有要运行的文本命令,则可以使用shlex.split生成适当的列表,并将其传递给子进程。通常,您不必担心引号和转义字符。因此,要将一个空格作为参数传递,只需编写一个空格。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16355485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档