Python读取路径下所有文件名

tech2025-06-03  9

Python读取路径下所有文件名

一、函数与用法二、实战应用○ 获取当前路径下所有文件名○ 将路径下文件名存入Excel○ 获取路径下指定类型文件名○ 读取路径下所有bmp类型图片 其他

by HPC_ZY

每次需要批量读取图片时,都要根据文件命名设计for循环实现,有时图片命名还没有规则就很难受。所以学习了一下读取文件名的方法,分享。

一、函数与用法

函数 os.walk(),这里就不讲其原型了,可以看这里Python os.walk() 方法。我们直接用实例讲解,假设我们有以下文件夹及文件

准备 后面所有代码都包含这两句,就不再写了。 import os file_dir = ".\\test\\" 直接返回 p = os.walk(file_dir) print(p)

结果如下,有点像C语言里的指针,看起来这样用不行

循环单输出 # 一个输出时 iter = 0 for obj in os.walk(file_dir): iter += 1 # 这两句就是为了显示更明了 print("\n第"+str(iter)+"次") # 没啥别的用哈 print(obj)

结果如下,可以看到obj是元组类型,结构为(root,dirs,files) root:当前路径 dirs:当前路径下的子文件夹 files:当前路径下的文件 2. 循环三输出

# 三个输出时 iter = 0 for root, dirs, files in os.walk(file_dir): iter += 1 # 这两句就是为了显示更明了 print("\n第"+str(iter)+"次") # 没啥别的用哈 print(root) print(dirs) print(files)

结果如下,这样就分别获得各成员

获取子文件夹及文件完整路径 # 获得文件夹及文件完整路径 iter = 0 for root, dirs, files in os.walk(file_dir): iter += 1 # 这两句就是为了显示更明了 print("\n第"+str(iter)+"次") # 没啥别的用哈 for name in dirs: print(os.path.join(root, name)) # 子文件夹 for name in files: print(os.path.join(root, name)) # 文件

结果如下


二、实战应用

○ 获取当前路径下所有文件名

仅实际文件,不含文件夹

import os file_dir = ".\\test\\" # 获得文件完整路径 for root, dirs, files in os.walk(file_dir): for name in files: print(os.path.join(root, name)) # 文件

结果如下


○ 将路径下文件名存入Excel

仅实际文件,不含文件夹

import os import xlwt file_dir = ".\\test\\" # 创建一个workbook 设置编码 workbook = xlwt.Workbook(encoding = 'utf-8') # 创建一个worksheet worksheet = workbook.add_sheet('files') # 获取路径下文件名并写入excel iter = -1; for root, dirs, files in os.walk(file_dir): for name in files: iter += 1 filename = os.path.join(root, name) worksheet.write(iter, 0, label = filename) # 参数对应 行, 列, 值 # 保存 workbook.save('filesname.xlsx')

结果如下


○ 获取路径下指定类型文件名

import os file_dir = ".\\test\\" filetype = '.bmp' # 指定类型 for root, dirs, files in os.walk(file_dir): for name in files: if filetype in name: print(name)

结果如下,能获取到只能类型,就可以对其进行后续的操作了


○ 读取路径下所有bmp类型图片

可以改写成任意类型文件,任意操作

import os import matplotlib.pyplot as plt #plt 用于显示图片 import matplotlib.image as mpimg #mpimg 用于读取图片 filetype = '.bmp' # 指定类型 for root, dirs, files in os.walk(file_dir): for name in files: if filetype in name: img = mpimg.imread(os.path.join(root, name)) plt.imshow(img) # 显示图片 plt.show()

其他

如果读出来的文件里有Thumbs.bd,不要慌那只是缓存的缩略图,如果你不想有这个东西,可以看看Win10怎么禁止生成thumbs.db文件 。
最新回复(0)