Python - печатать текст, если действие верно - PullRequest
0 голосов
/ 06 августа 2011

Я пытаюсь заставить Python напечатать предложение, если оно успешно скопирует файл.Пока он копирует файл, он игнорирует печать.почему это?Вот аналогичный пример моего кода:

from shutil import copyfile

if copyfile('/Library/demo.xls','/Jobs/newdemo.xls'):
  print "the file has copied"

Для справки, я использую Python v2.7.1

Ответы [ 3 ]

9 голосов
/ 06 августа 2011

copyfile ничего не возвращает, но выдает исключение при возникновении ошибки. Используйте следующую идиому вместо проверки if:

import shutil

try:
    shutil.copyfile('/Library/demo.xls','/Jobs/newdemo.xls')
except (Error, IOError):
    # Handle error
    pass
else:
    # Handle success
    print "the file has copied"

Ссылка на документацию shutil.copyfile .

4 голосов
/ 06 августа 2011

Это потому, что shutil.copyfile возвращает None. Вы, вероятно, хотите заключить его в предложение try / except:

try:
    shutil.copyfile(file1, file2)
    print 'success!'
except shutil.Error:
    print 'oh no!'
0 голосов
/ 06 августа 2011

copyfile не возвращает значение (ну, возвращает None).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...