如何在Python中使用输入文件(bash命令)运行二进制可执行文件



我有一个名为"abc">的二进制可执行文件,还有一个称为<strong]"input.txt">

./abc < input.txt

如何在Python中运行这个bash命令,我尝试了一些方法,但出现了错误。

编辑:我还需要存储命令的输出。

第2版:

我用这种方式解决了问题,谢谢你的帮助。

input_path=input.txt文件的路径。

out = subprocess.Popen(["./abc"],stdin=open(input_path),stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
stdout,stderr = out.communicate()
print(stdout)

使用操作系统

import os
os.system("echo test from shell");

使用子流程是调用系统命令和可执行文件的最佳方式。它提供了比os.system((更好的控制,并打算取代它。下面的python文档链接提供了更多信息。

https://docs.python.org/3/library/subprocess.html

这里有一段代码,它使用子流程读取head的输出,返回txt文件中的前100行,并逐行处理。它会为您提供输出(out(和任何错误(err(。

mycmd = 'head -100 myfile.txt'
(out, err) = subprocess.Popen(mycmd, stdout=subprocess.PIPE, shell=True).communicate()                                  
myrows = str(out.decode("utf-8")).split("n")                                                                           
for myrow in myrows: 
# do something with myrow

这可以通过os模块完成。下面的代码运行得非常好。

import os
path = "path of the executable 'abc' and 'input.txt' file"
os.chdir(path)
os.system("./abc < input.txt")

希望这能奏效:(

相关内容

  • 没有找到相关文章

最新更新