2015-08-25 218 views
1

在之前的文章中,我問如何創建一個新的文件來寫入,如果它不存在的話。但是,我剛剛在PyCharm中試過,並且它不工作。我沒有看到任何文件的標誌LOOKHERE.txt如何在Python中創建.txt文件? (Pycharm)

my_list = [i**2 for i in range(1,11)] 

openfile = open('LOOKHERE.txt', 'w') 
for item in my_list: 
    openfile.write(str(item) + "\n") 
openfile.close() 

我在做什麼錯?它可能與PyCharm使用項目有關嗎?

+1

給你的文件一個路徑或看看這個腳本執行的目錄 – Rash

+0

@Rash是的,我查看了與我的.py文件保存在同一個文件路徑,但它不在那裏。這是否意味着每次我想創建一個新文件時,我都必須指定一個路徑?從其他文章中,我被告知Python會自動完成。 – AlanH

+1

總是指定一條路徑是一種很好的做法。然而像其他人所說,如果你不用,那麼默認是當前目錄。如果你沒有看到它,那麼通過給出你的程序是正確的路徑來驗證。 – Rash

回答

0

正如您所建議的那樣,該文本文件是在pycharm項目文件夾中創建的。 如果你想要去其他地方,像你的桌面,例如,做到這一點:

f = open('path_to_desktop/file.txt', 'w') 

注:我只是測試這是我自己的系統上。通過右鍵單擊項目窗口中的文件夾(右側),然後從彈出的菜單中單擊「複製路徑」,我可以獲得項目路徑。

編輯:我假設你接受了我的回答,這最終解決了你的問題(雖然請,任何其他問題,做評論)。就像@ThanePlummer所說的那樣,想要添加的是,打開文件時使用with語句通常是更好的做法。一個原因是你的文件會自動關閉你!谷歌它;)

0

首先,你應該明確指定的路徑。使用r說明符和join命令執行此操作,以使其與平臺無關。操作文件時最好使用with關鍵字。

import os 

my_path = r'my/longpath/here' # forward slash works on all systems 

my_list = [i**2 for i in range(1,11)] 

with open(os.path.join(my_path, 'subdir', 'LOOKHERE.txt'), 'w') as fh: 
    for item in my_list: 
     openfile.write(str(item) + "\n") 
+0

更好的是使用內置的os.path模塊來操縱路徑。 (特別是加入)。 –

+0

同意。也許你是對另一篇文章的評論?在這個解決方案中使用'os.path.join()'。 –

+0

我的意思是這樣做的:os.path.join(「我的」,「長」,「路徑」,「去」,「這裏」),因爲你的路徑是不便攜的,因爲它代表(或者「我/長/路徑/去/這裏「將在任何地方工作)。這沒什麼大不了的。 –

0

在PyCharm中,您可以指定工作目錄來指出執行程序的位置。 按Shift+Alt+F10,然後0或導航欄打開Edit Configuration。然後在Working directory選擇項目的路徑。

相關問題