2016-04-13 2 views
0

Başka bir klasör içeren bir klasörü belirli bir dizine kopyalamayı gerçekten çok isterim.Belirli bir dizine diğer birkaç klasör içeren Klasör Kopyalama

oluşturduğum bir wx.FileDialog kökeni klasörü (path_origin) bulun bulmak ve new_directory (orijin dosya kopyalanacak olan dizinin)

Aşağıda

benim kodudur belirtmek için

import os 
import wx 
import shutil 


def transfer_folder(): 

app = wx.PySimpleApp() 


    dialog1 = wx.FileDialog(None, 'Select file:','','') 
    if dialog1.ShowModal() == wx.ID_OK: 
     path_origin=dialog1.GetCurrentlySelectedFilename() 

wildcard = "Nastran Input (*.bdf; *.dat; *.nas)|*.bdf;*.dat;*.nas|" \ 
    "All files (*.*)|*.*" 
    dialog = wx.FileDialog(None, 'Select file:','','',wildcard) 
    if dialog.ShowModal() == wx.ID_OK: 
     new_directory=dialog.GetPath() 

shutil.copy2(str(path_origin), str(new_directory)) 

Başka bir sorun da, içinde başka bir klasör bulunduğu için kopyalanacak klasörü seçemem.

cevap

2

copytree'yi kullanmayı deneyebilir misiniz?

shutil.copytree(str(path_origin), str(new_directory)) 

https://docs.python.org/2/library/shutil.html (src, dst, sembolik bağlar = False, = Hiçbiri görmezden)

yinelemeli src en köklü Bir dizin ağacını kopyalamak copytree

shutil.copytree destekler. Dst adlı hedef dizin zaten mevcut olmamalıdır; Eksik ana dizinlerin yanı sıra oluşturulacaktır. Dizinlerin izinleri ve zamanları copystat() ile kopyalanır, ayrı dosyalar shutil.copy2() kullanılarak kopyalanır.

+0

Kopyalamak istediğim klasörü seçemediğim bir sorunum var. Klasörü seçtiğimde ve dosya defterinde tamam'ı tıklattığımda, bu klasöre giriyor, bu yüzden gerçekten klasörü kopyalayamıyorum. Bunu nasıl çözeceğinizi biliyor musunuz? – maximus

+0

wxpython'da uzman değilim - ama "wx.FileDialog" yerine "wx.DirDialog" kullanmayı deneyebilir misiniz? ayrıca bkz: https://bytes.com/topic/python/answers/751284-wxpython-filedialog-select-folder – Yaron

+0

ayrıca bkz: http://www.java2s.com/Tutorial/Python/0380__wxPython/ChooseadirectoryfromDirDialog.htm – Yaron