小编Tra*_*ell的帖子

有没有办法在Python中断shutil copytree操作?

我对编程很新.我需要开发一个程序,可以一次复制多个目录,并考虑多个文件类型异常.我遇到了shutil模块,它提供了copytree和ignore_patterns函数.这是我的代码片段,它也使用wxPython多目录对话框:

import os
import wx
import wx.lib.agw.multidirdialog as MDD
from shutil import copytree
from shutil import ignore_patterns

app = wx.App(0)
dlg = MDD.MultiDirDialog(None, title="Custom MultiDirDialog", defaultPath=os.getcwd(),  agwStyle=MDD.DD_MULTIPLE|MDD.DD_DIR_MUST_EXIST)

dest = "Destination Path"

if dlg.ShowModal() != wx.ID_OK:
    dlg.Destroy()

paths = dlg.GetPaths()

ext = ['*.tiff', '*.raw', '*.p4p', '*.hkl', '*.xlsx']

for path in enumerate(paths):
    directory = path[1].replace('Local Disk (C:)','C:')
    copytree(directory, dest, ignore=ignore_patterns(directory, *ext))

dlg.Destroy()
app.MainLoop()
Run Code Online (Sandbox Code Playgroud)

这段代码对我很有用.有时,我会复制太字节数据.无论如何,shutil.copytree可以被打断吗?我问这个,因为我第一次运行这个程序时,我选择了一个相当大的目录并且意外地复制了大量的文件(成功!)并想要阻止它:(.一旦我解决了这个问题,我终于开始了在GUI上!如果有我可以提供的更多信息,请告诉我!提前感谢您的任何帮助!

python wxpython shutil copytree python-3.x

5
推荐指数
1
解决办法
241
查看次数

标签 统计

copytree ×1

python ×1

python-3.x ×1

shutil ×1

wxpython ×1