2017-05-22 17 views
1

각 디렉토리 내의 여러 폴더 및 파일이있는 디렉토리의 내용을 읽고 폴더 및 파일 이름을 데이터 프레임 열의 값으로 지정합니다. 디렉토리가 '집'이고 폴더 내에 여러 폴더와 파일이 있습니다. '폴더'열은 특정 폴더에 존재하는 많은 파일에 대해 반복됩니다. 출력 dataframe 그렇게 될 것이다 :Python : 디렉토리 및 파일 이름을 데이터 프레임 열로 저장하십시오.

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 

을하지만 난 값과 인덱스 길이 사이의 불일치 오류로 분명히 내 생각에 오류가 있습니다 :

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... 

내가 지금까지 노력하고 무엇. 여기서 내가 무엇을 놓치고 있니? 미리 감사드립니다!

+1

당신의 누락 ')'브래킷 DF = pd.DataFrame (열 = [ '폴더', '파일']) – Keval

답변

1

난 당신이 DataFrame 작성 후 쌍 folder-filetuples을 만들 필요가 있다고 생각 :

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