2013-04-20 40 views
2

我正在嘗試將輸入文件保存到我的計算機上的一個新文件夾中,但我無法弄清楚如何正確執行它。將文件保存到新目錄中(python)

這裏是我試過的代碼:

from os.path import join as pjoin 
a = raw_input("File Name: ") 
filepath = "C:\Documents and Settings\User\My Documents\'a'" 
fout = open(filepath, "w") 
path_to_file = pjoin("C:\Documents and Settings User\My Documents\Dropbox",'a') 
FILE = open(path_to_file, "w") 

當我運行它,它把兩個\在每個子目錄,而不是一間,它在告訴我這不是現有的文件或目錄。

我相信有一個更簡單的方法來做到這一點,請幫助。

+0

代碼的許多問題中的第一個問題是,常規Python字符串中的反斜槓需要加倍,因爲通常它是一個特殊的「轉義」字符。或者,你可以用'r'前綴字符串,然後你不必這樣做。即「C:\ Documents and Settings \\ User \\ My Documents」或'r「C:\ Documents and Settings \ User \ My Documents」'。你也需要使用'pjoin()'將'open()'的輸入和輸出文件的目錄名連接到'a',並且其中一個應該打開以便讀取,另一個用於寫入。 – martineau 2013-04-20 02:32:56

+0

如果您正在調用變量'FILE'以避免影響內建函數,請注意,接受的慣例是一個尾隨的下劃線,即。 'file_',所有大寫字母常用於常量 – jamylak 2013-04-20 03:43:59

+0

@jamylak你是對的。 – 2013-04-20 06:58:36

回答

3

爲什麼你有非轉義的"'quotes_like_this_inside_quotes'"?這可能是導致失敗的原因。

從我所能理解的,你保存的目錄是"C:\Documents and Settings\User\My Documents\''C:\Documents and Settings\User\My Documents\'

每當你弄亂目錄/路徑總是使用os.expanduser('~/something/blah')

試試這個:

from os.path import expanduser, join 

path_to_file1 = join(expanduser('~/Dropbox/'), 'a') 
path_to_file2 = join(expanduser('~'), 'a') 
fout = open(path_to_file2, "w") 
FILE = open(path_to_file1, "w") 

和雙反斜線都OK,據我所知。 讓我知道,如果這個工程 - 我現在不在Windows機器上。