【Python】获取某个目录及子目录下的所有文件
使用 os.walk() 输出结果 为方便知道每次打印结果,加了个num计数,可以看到每次都可以获取当前目录下的文件,所以需要优化下
1. 获取某个文件夹下的信息
使用 os.walk()
C:\USERS\CHAO9441\DESKTOP\TEST
│ file_1.txt
│ file_2.txt
│
├─folder_1
│ sub_file_1.txt
│
└─folder_2
└─folder_2_1
sub_sub_file_1.txt
import os
current_dir = "C:\\Users\\chao9441\\Desktop\\test"
def useOSWalk(folder):
num = 1
for root,folder_names, file_names in os.walk(folder):
print(root)
print(folder_names)
print(file_names)
print(num)
num+=1
if __name__ == "__main__":
useOSWalk(current_dir)
输出结果
['folder_1', 'folder_2']
['file_1.txt', 'file_2.txt']
1
C:\Users\chao9441\Desktop\test\folder_1
[]
['sub_file_1.txt']
2
C:\Users\chao9441\Desktop\test\folder_2
['folder_2_1']
[]
3
C:\Users\chao9441\Desktop\test\folder_2\folder_2_1
[]
['sub_sub_file_1.txt']
4
为方便知道每次打印结果,加了个num计数,可以看到每次都可以获取当前目录下的文件,所以需要优化下
2. 获取某个文件夹下所有文件(包括子目录)
import os
current_dir = "C:\\Users\\chao9441\\Desktop\\test"
def getAllFiles(folder):
filepath_list = []
for root,folder_names, file_names in os.walk(folder):
for file_name in file_names:
file_path = root + os.sep + file_name
filepath_list.append(file_path)
print(file_path)
file_path = sorted(file_path, key=str.lower)
return filepath_list
if __name__ == "__main__":
getAllFiles(current_dir)
输出结果:
C:\Users\chao9441\Desktop\test\file_1.txt
C:\Users\chao9441\Desktop\test\file_2.txt
C:\Users\chao9441\Desktop\test\folder_1\sub_file_1.txt
C:\Users\chao9441\Desktop\test\folder_2\folder_2_1\sub_sub_file_1.txt
这样就可以方便获取所有文件 🙂