2012-04-22 141 views
1

我使用“spim”仿真器来模拟mips体系结构。它的工作方式是,我应该首先有一个“filename.asm”文件,然后在bash中键入“spim”来打开spim的命令行解释器,然后我可以使用spim命令来加载文件并运行它,打开另一个命令行解释器并输入命令

我想写一个python脚本,打开spim命令行解释器,并开始在其中键入spim命令。这可能吗?

谢谢。

回答

1

这将取决于SPIM,这我不熟悉的,但如果你能管的东西,你可以做同样在Python

退房http://docs.python.org/library/subprocess.html

像这样的东西将让你开始:

proc = subprocess.Popen('spim',shell = True,stdin = subprocess.PIPE) 
proc.stdin.write("Hello world") 
0
from subprocess import Popen, PIPE, STDOUT 

# Open Pipe to communicate with spim process. 
p = Popen(['spim'], stdout=PIPE, stdin=PIPE, stderr=STDOUT, shell=True) 

# Write a "step 1" command to spim. 
p.stdin.write('step 1\n') 
p.stdin.close() 

# Get the spim process output. 
spim_stdout = p.stdout.read() 
print(spim_stdout) 
+1

您可以通过花时间来解释你做了什么使这更有助于在OP和未来SO'ers。 – 2014-05-08 18:00:23

+0

如果您需要迭代地与spim进程进行通信,此代码不能解决问题。 总是创建一个新的进程实例。当你发送“step 1”命令时,spim执行第一行。 解决方法是发送“步骤1”,“步骤2”,“步骤3”并考虑标准输出结果的最后一行。 有人知道python的方式,以保持一个开放的渠道与另一个进程? (我需要spim像一个“jit”执行命令的命令,但是在python子进程中。) – 2014-05-08 20:12:44