Как я могу захватить возвращаемое значение shutil.copy() в Python (в DOS)?
Я пытаюсь записать успех или неудачу нескольких команд копирования в файл журнала. Я использую shutil.copy()
- например.
str_list.append(getbitmapsfrom)
game.bigbitmap = "i doubt this is there.bmp"
str_list.append(game.bigbitmap)
source = '\\'.join(str_list)
shutil.copy(source, newbigbmpname)
Я заставил одну из команд копирования в моем script сбой, и она сгенерировала ошибку:
[Errno 2] No such file or directory: 'X:\PJ_public\PJ_Services\BSkyB-PlayJam\Content\P_NewPortal2009\1.0.0\pframes\i doubt this is is there.bmp'
Это здорово, но могу ли я записать "Errno 2 No such file or directory"
и записать его в файл журнала? Возвращает ли значение shutil.copy()
целочисленное значение? - Я не вижу этого в документах Python.
Я также хочу, чтобы у меня было возможность захватить возвращаемое значение, так что script не бомбит при сбое копии - я пытаюсь продолжить его, независимо от ошибок.
Спасибо.
Ответы
Ответ 1
Вы хотите посмотреть раздел раздела Python учебник. В случае, когда shutil.copy() не находит один из аргументов, будет вызвано исключение IOError. Вы можете получить сообщение из экземпляра исключения.
try:
shutil.copy(src, dest)
except IOError, e:
print "Unable to copy file. %s" % e
Ответ 2
Вы редко увидите коды возврата типа C в Python, вместо этого ошибки выдаются вместо исключений.
Правильный способ регистрации:
try:
shutil.copy(src, dest)
except EnvironmentError:
print "Error happended"
else:
print "OK"
Ответ 3
try:
shutil.copy(archivo, dirs)
except EnvironmentError:
print "Error en el copiado"
escritura = "no se pudo copiar %s a %s \n" % (archivo, dirs)
else:
print "Copiado con exito"
escritura = "%s --> %s \n" % (archivo, dirs)
finally:
log = open("/tmp/errorcreararboldats.log", "a")
log.write(escritura)
log.close()