Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 16, 2014 07:37:06

x-ray
Зарегистрирован: 2013-09-04
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

ошибка при использовании модуля shutil

В простейшем скрипте при использовании функции копирования в модуле shutil
получаю ошибку:

#!/usr/bin/env python32
import shutil
shutil.copy('E:\888.txt','E:\999.txt')   # копировать

интерпретатор выдает:
Traceback (most recent call last):
File “E:\copy.py”, line 3, in <module>
import shutil
File “C:\Python32\lib\shutil.py”, line 14, in <module>
import tarfile
File “C:\Python32\lib\tarfile.py”, line 50, in <module>
import copy
File “E:\copy.py”, line 5, in <module>
shutil.copy('E:\888.txt','E:\999.txt') # копировать
AttributeError: ‘module’ object has no attribute ‘copy’

то-же самое и при использовании функции copyfile (этого же модуля)… кто подскажет в чем проблема?

Офлайн

#2 Апрель 16, 2014 08:11:08

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

ошибка при использовании модуля shutil

File E:\copy.py, line 3, in <module>
Переименуй copy.py во что-нибудь другое



Офлайн

#3 Апрель 16, 2014 19:50:08

x-ray
Зарегистрирован: 2013-09-04
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

ошибка при использовании модуля shutil

Благодарю, помогло! А с чем это связано, конфликт из-за названия скрипта? Причем, я заметил, что не работает (т.е. не копируется) только в среде windows, а на линухе интерпретатор ругается так же, но работу делает! Файл копируется даже не меняя названия скрипта!

Офлайн

#4 Апрель 16, 2014 23:54:40

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

ошибка при использовании модуля shutil

x-ray
Потому что, если вы внимательно вглядитесь в код ошибки, внутри shutil идет импорт модуля copy

x-ray
File “C:\Python32\lib\tarfile.py”, line 50, in <module>
import copy
В соответствии с правилами импортирования первым модуль copy ищется в текущей директории, где он находит ВАШ модуль copy, который импортирует, но не находит в нем искомых объектов - образуется исключительная ситуация которая и всплывает в виде ошибки.

Нельзя называть ваши файлы также как и модули стандартной или других библиотек - это может вызвать противоречия, нелья называть переменные (или другие объекты) зарезервированными словами и/или названиями встроенных объектов - это вызовет либо синтаксическую ошибку, либо ошибку исполнения в будущем. Т.е.
a=10 #OK
for='for' # ERROR
list=[1,10] # BAD, error will be in bellow
l=list('qwerty')



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#5 Апрель 23, 2014 21:35:21

x-ray
Зарегистрирован: 2013-09-04
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

ошибка при использовании модуля shutil

Благодарю за подробное объяснение! Про зарезервированные слова я знаю, а вот про название функции в стандартном модуле (в данном случае “copy”) не знал…

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version