2017-05-22 1 views
1

Ich möchte den Inhalt eines Verzeichnisses lesen, das mehrere Ordner und Dateien in jedem Verzeichnis enthält, und die Ordner- und Dateinamen als Werte der Spalten eines Dataframes zuweisen.E.g. Verzeichnis ist "home" und darin mehrere Ordner und Dateien in jedem Ordner. Die Spalte "Ordner" wird für so viele Dateien in diesem bestimmten Ordner wiederholt. Der Ausgang Datenrahmen würde aussehen:Python: Speichern von Verzeichnissen und Dateinamen als Datenframe-Spalten

Folder File 
a_folder a_file 
a_folder b_file 
a_folder c_file 
b_folder aa_file 
b_folder bb_File 
b_folder cc_File 
etc... 

Was ich versuche, so weit:

import os 
import pandas as pd 

folders = [] 
files = [] 
df = pd.DataFrame(columns=['Folder', 'File']) 

for folder in sorted(os.listdir('home')): 
    folders.append(folder) 
    for file in sorted(os.listdir('home/'+folder)): 
     files.append(file) 

df['Folder']=folders 
df['File']=files 

Aber anscheinend gibt es einen Fehler in meinem Denken, wie ich einen Fehlanpassungsfehler zwischen den Werten und Indexlänge erhalten. Was ich hier vermisse? Danke im Voraus!

+1

Ihr fehlt a ')' Klammer df = pd.DataFrame (Spalten = [ 'Ordner', 'Datei']) – Keval

Antwort

1

Ich glaube, Sie tuples von Paar erstellen müssen folder-file und erstellen DataFrame:

data = [] 
for folder in sorted(os.listdir('home')): 
    for file in sorted(os.listdir('home/'+folder)): 
     data.append((folder, file)) 

df = pd.DataFrame(data, columns=['Folder', 'File']) 
print (df) 
    Folder  File 
0 a_folder a_file 
1 a_folder b_file 
2 a_folder c_file 
3 b_folder aa_file 
4 b_folder bb_file 
5 b_folder cc_file 
Verwandte Themen