Python 3.x 在Python中正确实现Shutil.Error
我正在学习Python3,并试图编写一个脚本来复制目录。我正在使用Python 3.x 在Python中正确实现Shutil.Error,python-3.x,exception-handling,directory,Python 3.x,Exception Handling,Directory,我正在学习Python3,并试图编写一个脚本来复制目录。我正在使用shutil.copytree。从Python文档中可以看出: 如果发生异常,则会引发错误并列出原因 此异常收集在多文件存储期间引发的异常 活动对于copytree(),异常参数是 三元组(srcname、dstname、exception) 在这种情况下,他们会这样做: except Error as err: errors.extend(err.args[0]) 这是我的剧本: def copyDi
shutil.copytree
。从Python文档中可以看出:
如果发生异常,则会引发错误并列出原因
此异常收集在多文件存储期间引发的异常
活动对于copytree(),异常参数是
三元组(srcname、dstname、exception)
在这种情况下,他们会这样做:
except Error as err:
errors.extend(err.args[0])
这是我的剧本:
def copyDirectory(src, dest):
errors = []
try:
shutil.copytree(src, dest)
except Error as err:
errors.extend(err.args[0])
source="C:/Users/MrRobot/Desktop/Copy"
destination="C:/Users/MrRobot/Desktop/Destination"
copyDirectory(source, destination)
moveDirectory(destination,"I:/")
问题:
shutil.copytree
时可能发生的异常(假设我上面的脚本不正确)errors
数组捕获异常时,您需要包含模块名称:
except shutil.Error as err:
或者显式导入它:
from shutil import copytree, Error
# the rest of your code...
try:
copytree(src, dest)
except Error as err:
errors.extend(err.args[0])
要查看回溯和异常信息,您有几个选项:
顺便说一下,您应该避免将其称为数组。此特定异常对象具有of,并且是完全不同的数据结构。您可以使用OSError来处理它:
import shutil
def removeDirectory(directory):
try:
shutil.rmtree(directory)
except OSError as err:
print(err)
removeDirectory('PathOfDirectoryThatDoesntExist')
输出:
[Errno 2]没有这样的文件或目录:
“./pathofDirectorythatDoesnTextist”
快速提问,然后我如何查看错误,只是循环错误数组?为了我自己的理解,你能告诉我如何实现回溯功能吗?