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文件 。
更多推荐
Python读取路径下所有文件名
发布评论