我有一个奇怪的问题,我似乎无法解决
from subprocess import PIPE, Popen
exeLocation = "../Engine.exe"
# Works on windows
proc = Popen([exeLocation, arg1, arg2],stdout=PIPE,shell=True])
(out,err) = proc.communicate()
# Works on Linux
proc = Popen(" ".join([exeLocation, arg1, arg2]),stdout=PIPE,shell=
我正在尝试跟踪我能找到的关于subprocess.Popen的信息,因为我想进行一个linux命令行调用。我尝试如下所示,但得到错误"Errno 2没有这样的文件或目录“。我没有试图打开一个文件,所以我不理解这个错误,当我使用常规的os.popen时,它工作得很好(尽管有其他问题涉及到当我不想要的时候等待进程完成)。
我似乎不知道如何正确地做这件事,任何建议都是值得感谢的。
编辑:我正在使用的命令是复杂和复杂的,在这里包含它太脱离上下文了,我想只要说当我使用os.popen而不是当我使用新的方式时代码可以工作就足够了,所以不,"linux命令行调用“显然不是我使用的调用。
su
我试着用Python做一些非常简单的事情,但没有成功。我想从python内部运行一个可执行文件,这样当调用python脚本退出时-已经启动的exe继续运行。也就是说,要在独立的进程中运行exe,就不需要在进程和创建进程之间进行任何进程间的通信。
Windows 10中当前的目标操作系统(不是linux,因此linux/unix解决方案不适用),但理想情况下,解决方案应该是独立于平台的。我尝试了两种不同的方法:使用subprocess.Popen()和os.system()
我一直未能找到任何“显而易见”的解决方案,或在同一主题的不同帖子中提出的解决方案。下面给出的各种尝试的列表-注释掉了。在这
我是一个新手,在linux中自动化了几个测试用例。我想转到subprocess.Popen之后的下一行并打印- "I am executing“。
subprocess.Popen(['./xyzScript.sh']).communicate() print("I am executing")
该怎么做呢?
我需要将一个字符串变量传递给popen命令,该命令是我为解密一段加密数据而创建的。我需要使用的代码段是:
char a[]="Encrypted data";
popen("openssl aes-256-cbc -d -a -salt <a-which is the data i have to pass here>","r");
我应该怎么做才能把这个变量传递给命令。我尝试过:
popen("openssl aes-256-cbc -d -a -salt %s",a,"r");
但是在编译时显示错误
我有一个类似守护进程的进程,它使用plumbum在子进程中运行命令。我注意到它泄露了Popen对象。
易于复制:
from plumbum.cmd import ls
x = [ ls() for i in range(500) ]
del x
import gc
gc.collect()
import objgraph
[ x for x in objgraph.most_common_types(10000) if 'Popen' in str(x) ]
=> [('Popen', 500)]
这是个虫子吗?(我找不到报告铅虫的地方.)
我还“尝试”修
我使用下面的python函数来运行linux命令。我正在运行一个脚本,它创建了一些环境变量,然后我使用下面的函数运行linux命令,再次将所有这些变量移植到脚本中;然而,使用第二个命令似乎没有记录第一个命令的环境变量。我想知道是不是因为每次我调用os.popen时,它都会在不同的shell中运行命令?如果是这样的话,我如何修改我的代码或使用哪个函数来让所有东西都在同一个shell中运行?
def execute(cmd):
'''Module to execute linux command'''
try:
pro