实例所用资源:https://download.csdn.net/download/weixin_46623003/16096296
一、文件夹内容如下:
1级:
2级:
3级:只有“二级文件夹1”下有文件
二、测试情况如下:
1、os.listdir(path):只读取该路径path下的所有文件名(包括文件夹名、文件名,不包括子文件夹下的内容),结果会按字母排序
import os
path = r'C:\个人文件夹\Data analysis learning\skit-learn\Workspace\document_vscode\test'
files_1 = os.listdir(path)
files_1
# 结果:
>>> files_1
['1级文件.txt', '一级文件夹']
files_2 = os.listdir(path+'/一级文件夹')
files_2
# 结果:
>>> files_2
['二级文件夹1', '二级文件夹2', '二级文件夹3']
2、os.walk(path):返回3个值:root、dirs(文件夹名)、files(文件名)。会将path路径下所有的文件夹(子文件夹)、文件(子文件夹下的文件) 分别分类返回
import os
import pandas as pd
path = r'C:\个人文件夹\Data analysis learning\skit-learn\Workspace\document_vscode\test'
results = []
for root,dirs,files in os.walk(path):
print(files)
result={
'root': root,
'dirs': dirs,
'files': files
}
results.append(result)
data = pd.DataFrame(results)
data.to_excel('C:\\个人文件夹\\Data analysis learning\\skit-learn\\Workspace\\document_vscode\\result.xlsx')
结果:
>>> list(os.walk(path))[0]
('C:\\个人文件夹\\Data analysis learning\\skit-learn\\Workspace\\document_vscode\\test', ['一级文件夹'], ['1级文件.txt'])
>>> list(os.walk(path))[0][2]
['1级文件.txt']
>>> list(os.walk(path))[1]
('C:\\个人文件夹\\Data analysis learning\\skit-learn\\Workspace\\document_vscode\\test\\一级文件夹', ['二级文件夹1', '二级文件夹2', '二级文件夹3'], [])
>>> list(os.walk(path))[1][1]
['二级文件夹1', '二级文件夹2', '二级文件夹3']