2012-09-07 109 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

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

相關問題