2013-04-20 6 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 должны быть удвоены, потому что обычно это особый символ «escape». Кроме того, вы можете префикс строк с помощью 'r', а затем вам не нужно это делать. то есть «C: \\ Documents and Settings \\ User \\ Мои документы» или «r» C: \ Documents and Settings \ User \ Мои документы "'. Также вам нужно использовать 'pjoin()' для объединения имени каталога в 'a' для файлов ввода и вывода, которые вы открываете()', и один из них должен быть открыт для чтения, а другой для записи. – martineau

+0

Если вы вызываете свою переменную 'ФАЙЛ', чтобы не затенять встроенный, просто обратите внимание, что принятое соглашение для этого является единственным конечным подчеркиванием, то есть. 'file_', все кепки используются для констант, обычно – jamylak

+0

@jamylak вы правы. –

ответ

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") 

И двойные обратные косые исправны, AFAIK. Дайте мне знать, если это сработает - на данный момент я не в Windows.

Смежные вопросы