Я довольно новичок в программировании в целом.Мне нужно разработать программу, которая может копировать несколько каталогов одновременно, а также учитывать несколько типов исключений.Я наткнулся на модуль shutil, который предлагает функции copytree и ignore_patterns.Вот фрагмент моего кода, который также использует диалоговое окно wxPython Multiple Directory:
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()
Этот код хорошо работает для меня.Иногда я буду копировать данные в терабайтах.В любом случае shutil.copytree может быть прерван?Я спрашиваю об этом, потому что в первый раз, когда я запустил эту программу, я выбрал довольно большой каталог и случайно скопировал тонну файлов (Успешно!) И хотел остановить это :(. Как только я обойду это, я наконец начнув GUI! Если есть больше информации, которую я могу предоставить, пожалуйста, дайте мне знать! Заранее спасибо за любую помощь!