2014-11-21 91 views
-1

我正在與Python 2.7.x的Linux上工作,我正在通過終端運行一些程序python。我希望某些輸出應該寫入位於不同於我的工作目錄的目錄中的文件中。所以我寫了這段代碼。但是,正在發生的是在當前目錄中創建文件All.txt,而不是所需的目錄。有人可以幫我解決我出錯的地方嗎?如何在python中的不同目錄中寫入文件?

ResultDir = '/pr/p1/ap11/' 
os.system('cd ' + ResultDir) 
Outputname1 = 'All.txt' 
Output1 = open(Outputname1, 'a') 
Output1.write('hello' +'\n') 
Output1.close() 
+0

您對'os.system'的調用啓動一個新的shell,更改其工作目錄,然後立即銷燬該shell。你的腳本集的工作目錄沒有任何意義。 (如果你想這樣做,你可以使用'os.chdir()'。) – Cameron 2014-11-21 23:17:09

回答

8

使用os.system更改當前目錄不會影響正在運行的Python進程。直接用完整路徑打開文件:

with open('/pr/p1/ap11/All.txt', 'a') as output: 
    output.write('hello\n') 
+0

我需要提一些輸出流對象關閉語句嗎?正如我在我的代碼'Output1.close()'中寫的? – b2850624 2014-11-21 23:23:30

+0

@ b2850624不,如果您使用類似'with'語句,文件將自動關閉。 – poke 2014-11-21 23:27:58

相關問題