Python - 如果action为true,则打印文本

时间:2011-08-05 21:12:54

标签: python printing if-statement

如果成功复制文件,我正在尝试让Python打印句子。在复制文件时,它会忽略打印。为什么是这样?这是我的代码的类似示例:

from shutil import copyfile

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

供参考,我使用的是Python v2.7.1

3 个答案:

答案 0 :(得分:9)

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 documentation

答案 1 :(得分:4)

那是因为shutil.copyfile返回None。您可能希望将其包装在try / except子句中:

try:
    shutil.copyfile(file1, file2)
    print 'success!'
except shutil.Error:
    print 'oh no!'

答案 2 :(得分:0)

copyfile不返回值(好吧,返回None)。