2016-07-17 10 views
1

Python ich die Ordnerstruktur von Google Drive-Konto zu extrahieren, aber ich bin fest, wie ich die Ordnerstruktur lokal erstellen os.makedirspython3 - Erstellen Sie Ordner-Struktur basierend auf Baumausgang

Die unten-Funktion wird derzeit unter Verwendung von gibt den Baum korrekt aus (Ich verwende einen Einzug, um dies zu überprüfen). So hat das Google Drive-Konto seine Ordnerstruktur.

def tree_folder_contents(items_array, folder_id, indent): 
    for item in items_array: 
     if item['parents']: 
      for parent in item['parents']: 
       if folder_id == parent: 
        if item['mimeType'] == 'application/vnd.google-apps.folder': 
         print('  ' * indent + item['name'] + ' (indent: ' + str(indent) + ')') 
         tree_folder_contents(items_array, item['id'], indent+1) 

Der Baum Ausgang:

Folder_1 (indent: 0) 
Folder_2 (indent: 0) 
    Folder_2_1 (indent: 1) 
      Folder_2_1_1 (indent: 2) 
      Folder_2_1_2 (indent: 2) 
      Folder_2_1_3 (indent: 2) 
      Folder_2_1_4 (indent: 2) 
Folder_3 (indent: 0) 
    Folder_3_1 (indent: 1) 
      Folder_3_1_1 (indent: 2) 
Folder_4 (indent: 0) 
Folder_5 (indent: 0) 

Wie kann ich integrieren os.makedirs in tree_folder_contents um lokal diese Ordnerstruktur zu erstellen?

Antwort

0

Ich habe einen neuen Parameter folder_path hinzugefügt und ich erstelle die Ordner mit der dest_path = folder_path + item['name'] Linie.

Dies ist der vollständige Code:.

def tree_folder_contents(items_array, folder_id, folder_path, indent): 
    for item in items_array: 
     if item['parents']: 
      for parent in item['parents']: 
       if folder_id == parent: 
        if item['mimeType'] == 'application/vnd.google-apps.folder': 
         dest_path = folder_path + item['name'].replace('/', '_') + '/' 

         if not os.path.exists(dest_path): 
          os.makedirs(dest_path) 

         print('  ' * indent + item['name'] + ' (indent: ' + str(indent) + ')') 
         tree_folder_contents(items_array, item['id'], dest_path, indent+1) 

Beim ersten Lauf von tree_folder_contents, folder_path ist das Hauptverzeichnis, in dem alle Konto Ordner werden in erstellt werden

Verwandte Themen