2017-03-17 146 views
0

所以我一直在用python 3編寫一個項目,而且我需要在.txt文件中存儲一些數據。當我運行代碼時,沒有錯誤信息,它甚至不創建文件。請幫忙。在Python中,寫入文本文件不起作用

下面的代碼:

text = 'Sample text.' 
saveFile = open('file.txt','w') 
saveFile.write(text) 
saveFile.close() 
+1

'saveFile.close()'。或者更好的是,使用'with'塊 –

+0

謝謝,我試過了,但它仍然無效。 –

+0

將代碼更改爲'saveFile.close()'爲我工作。你能重新檢查一下你是做什麼的,因爲它應該可以工作。您還可以添加一行最後一行來讀取並打印該文件以進行調試:'print(open('file.txt')。read())' – tdelaney

回答

0

你正在寫的文件到當前的工作目錄,但該目錄是不是你想要的。您可以通過爲這些目錄生成絕對路徑來相對於您的家庭或桌面目錄編寫文件。

import os 
home_dir = os.path.expanduser('~') 
desktop_dir = os.path.join(home_dir, 'Desktop') 

現在,您可以將它用於您的文件。注意我使用上下文管理器,因此我不必明確關閉文件:

text = 'Sample text.' 
with open(os.path.join(desktop_dir, 'file.txt'),'w') as savefile: 
    saveFile.write(text) 
+0

工作正常!非常感謝! –

0

請確保調用.close()函數,而不是簡單地引用方法上的最後一道防線。請注意,該文件將在您的.py模塊所在的目錄中創建,因此請確保您在正確的位置查找輸出。

+0

好的,所以我找到了創建的文件,但是當我將它移動到某個位置時(例如桌面),並嘗試再次寫入時,沒有任何反應。 –

+0

如果您的.txt文件不再與Python模塊位於同一目錄中,您必須引用特定的文件路徑。 'C:\ Users \ User \ Desktop \ sample.txt'或類似的東西。 –

+0

好的。我試過了,我收到一條錯誤消息,「目錄中找不到sample.txt」... –

0

你一定權力,以更好地寫入文件

代碼像下面

#!/usr/bin/env python 
# coding:utf-8 
'''黃哥Python''' 

text = 'Sample text.' 

with open('sample.txt', 'w') as f: 
    f.write(text) 
+0

這對這種情況沒有幫助。文件正在寫入,而不是OP認爲它應該在的地方。 – tdelaney

+0

請添加所有的錯誤信息 –

0

是否該文件存在?使用此代碼來創建它。

open('sample.txt', 'a').close() 

有對代碼行不會傷害是否已經創建了文件,因爲它打開文件,並關閉,不添加任何。但是,如果它不存在,它使用python使用的特定編碼(我認爲)創建它,所以你不必擔心這一點。在這之後,你的代碼應工作:

text = 'Sample text.' 
saveFile = open('file.txt','w') 
saveFile.write(text) 
saveFile.close() 
+0

這不會幫助。如果文件不存在,「w」將創建該文件。 – tdelaney

+0

它沒有任何好處...文件不是用持久性編碼創建的。任何讀取或寫入它的代碼都需要知道編碼是什麼。 – tdelaney

+0

「w」應該創造它,但並不總是如此。幾個月前,我發現使用「a」創建文件可以消除我在代碼中遇到的一些錯誤,並且從此我一直在使用它。 – Saelyth