bal*_*ika 3 python directory file subdirectory pandas
我想读取在每个目录中有多个文件夹和文件的目录的内容,并将文件夹和文件名分配为数据框列的值。例如目录是“home”,其中每个目录中有几个文件夹和文件文件夹。对于该特定文件夹中存在的尽可能多的文件,将重复“文件夹”列。输出数据帧将是这样的:
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...
Run Code Online (Sandbox Code Playgroud)
到目前为止我正在尝试什么:
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
Run Code Online (Sandbox Code Playgroud)
但显然我的想法存在错误,因为我在值和索引长度之间出现了不匹配错误。我在这里缺少什么?提前致谢!
我认为你需要创建tuples对folder-file然后创建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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7543 次 |
| 最近记录: |