擅长:python、mysql、java
<p>好吧,我上午好手机无法测试我的答案,但我想您的预期输出可以这样实现:</p>
<pre><code>import subprocess
f = open("ax-rrff.dat", "a")
f.write("seed\tN\tT\tDRA\tD\tActive\tAvF\n")
p = subprocess.call(['gcc', 'ax-rrff.c', '-lm','-lgsl','-lgslcblas'])
for seed in range(1,2+1):
for N in range(1,2+1):
newcall = subprocess.Popen(['a.exe',str(seed),'1',str(N),'1000','0','0'], stdout=subprocess.PIPE)
newcall.wait()
output, errors = newcall.communicate()
f.write(output.decode())
f.close()
</code></pre>
<p>但有一件事还不清楚。。因为您在for循环外声明了<code>p</code>,然后又在循环内部声明了一次。。这使我相信您愿意使用第一个声明作为第二个声明的输入。。但是,您所做的只是做一个新的声明,从而覆盖第一个声明。所以您正在更改<code>p</code>是什么,而不是以任何方式使用/执行它。。在</p>
<p>进一步说明:</p>
<p>我将<code>open(file, 'w')</code>改为<code>open(file, 'a')</code>,这意味着文件将是<code>append</code>模式,而不是{<cd6>}模式。这允许你写任何你想写的频率,它将按写入文件的顺序添加每一行从内部你的python脚本。在</p>
<p>如果您仍然想使用<code>p</code>的第一个声明作为第二个声明的输入,请查看是否可以通过将插入到for循环中的子进程中的命令行命令进行扩展。在</p>