Форум сайта python.su
0
Уже час втыкаю в документацию и не могу понять, что я делаю не так.
Мне нужно в директорию D:\savorsk\ скопировать folder1. Вроде бы очень банально, НО у меня вылетает ошибка
import shutil src = "D:\\Project\\2014\\archdata\\folder1" dst_sav = "D:\\savorsk\\" shutil.copytree(src, dst_sav)
D:\123>1.py
Traceback (most recent call last):
File "D:\123\1.py", line 5, in <module>
shutil.copytree(src, dst_sav)
File "C:\Python27\ArcGIS10.2\lib\shutil.py", line 175, in copytree
os.makedirs(dst)
File "C:\Python27\ArcGIS10.2\lib\os.py", line 157, in makedirs
mkdir(name, mode)
WindowsError: [Error 183] ═хтючьюцэю ёючфрЄ№ Їрщы,: 'D:\\savorsk'
Отредактировано Suliman (Май 15, 2014 16:21:01)
Офлайн
3
Suliman
На Python 3.3 работает нормально. На 2.7 тоже. Если что, обязательно должна существовать src директория. И должны быть права на папки
Офлайн
3
Все правильно. Директории назначения не должно существовать, поскольку модуль os не сможет заменить существующие файлы. От же (модуль os) и создаст необходимую директорию.
Офлайн
0
MindHatter
и как быть? Мне нужно чтобы просто копировать нужную папку.
Офлайн
3
Тут все просто. Удали директорию назначения, то есть ‘D:\\savorsk’.
В первый раз скрипт отработает нормально, но если ты запустишь его второй раз то возникнет та же самая ошибка. Если переводить на русский ту белиберду в трейсбеке, то это будет:
Traceback (most recent call last): File "\\psf\Home\Documents\copy_folder.py", line 4, in <module> shutil.copytree(src, dst_sav) File "C:\Python27\lib\shutil.py", line 177, in copytree os.makedirs(dst) File "C:\Python27\lib\os.py", line 157, in makedirs mkdir(name, mode) WindowsError: [Error 183] Невозможно создать файл,: 'C:\\savorsk\\'
import shutil src = "D:\\Project\\2014\\archdata\\folder1" dst_sav = "D:\\savorsk\\" try: shutil.copytree(src, dst_sav) except WindowsError: shutil.rmtree(dst_sav) shutil.copytree(src, dst_sav)
Отредактировано MindHatter (Май 16, 2014 13:59:23)
Офлайн