当前位置: 首页 > 面试题库 >

Python:shell = False的子进程调用不起作用

秋向阳
2023-03-14
问题内容

我正在使用Python脚本来调用Java虚拟机。以下命令有效:

subprocess.call(["./rvm"], shell=False)  # works
subprocess.call(["./rvm xyz"], shell=True) # works

但,

subprocess.call(["./rvm xyz"], shell=False) # not working

不起作用。避免使用Python文档建议shell=True


问题答案:

您需要将命令拆分为单独的字符串:

subprocess.call(["./rvm", "xyz"], shell=False)

在以下情况下可以使用字符串,shell=True但是在以下情况下您需要一个参数列表shell=False

该shlex模块是很有用的更因此对于更复杂的命令和处理输入,但良好的了解:

import shlex

cmd = "python  foo.py"
subprocess.call(shlex.split(cmd), shell=False)

shlex tut



 类似资料:
  • 问题内容: Python版本:2.6.7 我在for循环中有以下subprocess.call,该循环被执行18次,但是,该过程始终挂在第19个循环上: 控制台输出如下所示: 由于我对python脚本不是很熟悉,所以我只是在徘徊我是否在做错什么…我怀疑某个地方出现了死锁。 会处理这些问题吗? 在什么情况下subprocess.call会挂起任何专家答案?非常感谢 问题答案: 当使用子过程时,我倾向

  • 问题内容: 在这里,我粘贴了代码,我想返回$ .ajax的响应作为函数a()的响应。但是在ajax调用的结果出现之前,它会返回空的f。请帮忙 问题答案: 我猜您正在使用jQuery 1.8+ http://api.jquery.com/jQuery.ajax/ 请阅读细则。 在jQuery 1.8,采用异步的:与jqXHR($ .Deferred)虚假被 弃用 ; 您必须使用complete /

  • 第一次在这里写东西。 为什么我的子程序不起作用?我正在尝试打开main函数中的子例程以获取布尔值。

  • 我试图用curl调用RESTAPI。apiendpoint在程序中动态生成,并上载json文件。 在这里,我正在打印生成的命令,当我从shell运行该命令时,它正在按预期工作。但是,使用Popen运行相同的命令时会抛出一些json验证错误,这是错误的

  • 我试图发送信号从我的pyObc gui(osx状态栏中的菜单)到我的应用程序的主进程。具体来说,我在一个类中运行gui,在一个进程中运行this,我试图通过管道将消息从gui发送到主进程。 当我使用一种简单的方法将数据放入管道中时,我的代码可以工作。消息被传递到主进程,产生当我在子流程中启动gui并尝试将数据放入管道时,比如当我单击菜单选项“开始”时,什么都不会发生。主流程线从未打印,据我所知,主

  • 问题内容: 我在看这个问题。 就我而言,我想做一个: 现在,我可以在命令行中检查“ ls文件夹/*.txt”的工作原理,因为该文件夹包含许多.txt文件。 但是在Python(2.6)中,我得到了: ls:无法访问*:没有此类文件或目录 我尝试做: 和其他变体,但似乎根本不喜欢角色。 还有其他逃生方法吗? 问题答案: 被您的外壳自动展开。如果您引用,则不起作用: 如果要获取与模式匹配的文件,请使用