我有一个可执行文件,我需要通过一个python脚本来运行和可执行文件需要一个文件路径作为参数,就像这样:有没有办法使用字符串中的数据代替子进程中的文件路径参数?
./myExecutable /pathToFileToProcess
我希望我能和POPEN运行合格可执行我表示我的“/ pathToFileToProcess”数据的字符串,而不必将其写入磁盘。
我相信我试图做的是非常相似,在这里问的问题: Python string as file argument to subprocess
但是建议的解决方案是不是为我工作。下面是我试图实现它:
from subprocess import Popen, STDOUT, PIPE
stringDataFromFile = "the data to be processed"
p = Popen(['./myExecutable'], shell = False, stdout = PIPE, stderr = PIPE, stdin = PIPE)
stdout, stderr = p.communicate(input = stringDataFromFile)
print(stdout)
print(stderr)
当我运行此我得到在标准输出为./myExecutable的一般用法消息是,如果你不提供文件来处理发生了什么。注意:我需要捕获标准输出,所以我已经实现它与建议略有不同。
我在想,差异必须是./myExecutable不会接受它通过stdin输入,其中链接示例中的程序会。或者,我只是做错了。
有关如何做到这一点的任何想法,或者甚至可能吗?
'stdin = stdout'? –