【发布时间】:2017-04-22 23:35:12
【问题描述】:
我正在运行一个 python 脚本,它启动一个名为 ./abc 的可执行文件。这个可执行文件进入程序内部并等待如下命令:
$./abc
abc > \\waits for a command here.
我想做的是输入几个命令,例如:
$./abc
abc > read_blif alu.blif
abc > resyn2
我目前的情况如下:
import os
from array import *
os.system('./abc')
for file in os.listdir("ccts/"):
print 'read_blif ' + file + '\n'
print 'resyn2\n'
print 'print_stats\n'
print 'if -K 6\n'
print 'print_stats\n'
print 'write_blif ' + file.split('.')[0] + 'mapped.blif\n'
但是,这将执行以下操作:
abc > \\stays idle and waits until I ^C and then it prints
read ...blif
resyn2
...
它只打印到终端。我如何让它在程序中执行这个并等到它看到下一个 abc > 运行下一个命令。 谢谢
【问题讨论】:
-
你能说清楚你想要什么吗?
-
你正在遮蔽内置
file(对于 Python 3.4(可能完全是 Python3)没关系,但我发现这里不是这种情况)。考虑重命名它。当您从 cmdline 执行 abc 可执行文件时,它实际上做了什么?你必须更具体。 -
很抱歉描述模糊,但下面的所有答案都是正确的。我只是想捕获程序的终端输出并向其写入命令。
标签: python bash shell sh executable