2012-09-07 78 views
0

我试图让我的程序将其输出写入文件。它是在一个循环中完成的,但我认为它会每次覆盖文件中的内容,而不是添加到文件中。以下是相关代码:在不覆盖的情况下写入文件

g = open('mjd.txt','a') 

for i in range(len(new_y)): 
    os.system('vap -c "mjd" {0} > mjd.txt'.format(new_y[i])) 

其中,vap是另一个输出一行的程序的命令。

虽然循环后,我的“mjd.txt”文件中只有一行,我想那里有几个。

任何帮助将是伟大的。谢谢。

+3

使用>>而不是> –

+0

你也可能想看看'subprocess'为'os.system'一个更好的替代方案(那里你可以完全绕过壳)。 – mgilson

+0

还有'g = open('mjd.txt','a')'这一行在这里不需要 –

回答

6

将该行更改为以下内容以进行追加。现在无法想象“>”和“>>”的名称。

os.system('vap -c "mjd" {0} >> mjd.txt'.format(new_y[i])) 
+0

太棒了!谢谢! – user1551817

+0

>重定向标准输出,覆盖任何重定向到。 >>通过stdout追加。 – Makoto

+0

'>'(右人字形)是重定向。 '>>'(双右人字形)重新定向并追加。 –

相关问题