2013-11-27 5 views
1

Я пытаюсь скопировать файлы из локальной папки в удаленную папку Windows с помощью python. Таким образом, главное требование, чтобы переместить файлы из исходной папки (которая постоянно меняется) к удаленному Поделиться:Скопировать содержимое из локальной папки в удаленную папку в python

Не уверен, что я делаю неправильно, но ниже того, что я пытался до сих пор:

# Move the archive file to DVD Burner Box 
destPath = '\\\\10.10.10.10\\DestFolder\\' 
destFolder = destPath + ('%s_%s\\') %(id1,id2) 
srcArchFolderPath = '.\\prepared\\%s_%s\\' %(id1,id2) 
srcArchFiles = os.listdir(srcArchFolderPath) 

try: 
    os.makedirs(destFolder) 
except OSError: 
    pass 

shutil.copytree (srcArchFiles,destFolder,ignore=None) 

SourceFolderPath постоянно меняется при каждом запуске с разными входами.

Ех: это может быть. \ Подготовлено \ 1_2 или. \ Подготовлено \ 2_3, которое будет меняться при каждом запуске скрипта.

Если я печатаю srcArchFiles, он показывает список папок, который существует в srcArchFolderPath успешно. Также os.makedirs (destFolder) автоматически создает папку в удаленной папке. Но копия файлов терпит неудачу и не уверена, почему она терпит неудачу, я верю, что я не делаю что-то правильно с помощью shutil.

Ниже ошибка я вижу: Файл "C: \ Python26 \ Lib \ shutil.py", строка 140, в copytree имена = os.listdir (ЦСИ) TypeError: принуждать к Unicode: нужно строка или буфер, список найденных

Любая помощь в исправлении этого очень ценится.

+0

могли бы вы выбрать протокол, как УПП для передачи и использовать библиотеку как paramiko_scp? – dm03514

ответ

0

srcArchFiles - это список папок. shutil.copytree нуждается в одной папке в качестве первого параметра.

Вы должны использовать цикл для копирования каждой папки.

for foldername in srcArchFiles: 
    shutil.copytree (foldername, destFolder, ignore=None) 
+0

Спасибо за вход @Matthias. Я попытался внести изменения, добавив для имени папки в srcArchFiles: Как он заканчивается, давая ниже ошибку: WindowsError: [Ошибка 183] Невозможно создать файл, если этот файл уже существует: '\ \\\ 10.10. 10.10 \\ DestFolder \\ id1_id2 \\ ' Я также прокомментировал часть os.mkdirs, чтобы папка не создавалась. – daaredevill

+0

Думаю, я понял это. Я добавил , если os.path.exists (destFolder) shutil.rmtree (destFolder) Еще раз спасибо за показ правильного направления. +1 – daaredevill

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