下面是详细的“Python读取文件夹中图片的图片名并写入Excel表格”的攻略:
1. 准备工作
在使用 Python 读取图片名称和写入 Excel 之前,我们需要先进行如下准备工作:
1.1 安装所需库
我们需要使用的库包括 os、PIL 和 openpyxl。可以通过命令行输入以下指令来安装:
pip install os
pip install PIL
pip install openpyxl
1.2 创建测试图片文件夹和 Excel 文件
我们在桌面上创建一个名为“test”的文件夹,并在其中放入三张名为“1.jpg”、“2.jpg”和“3.jpg”的测试图片。然后我们创建一个名为“test.xlsx”的 Excel 文件,用于写入图片名称。
2. 读取图片名称并写入 Excel 表格
接下来我们将详细介绍如何使用 Python 读取图片名称并写入 Excel 表格。
2.1 导入所需库
我们先导入 os、PIL 和 openpyxl 三个库,代码如下:
import os
from PIL import Image
from openpyxl import Workbook
2.2 遍历文件夹中的图片
我们使用 os 库中的 listdir() 方法遍历文件夹中的所有文件,然后使用 Pillow 库中的 Image.open() 方法打开每一张图片,最后使用 split() 方法获取图片名称。代码如下:
image_path = r"C:\Users\user\Desktop\test"
files = os.listdir(image_path)
images = []
for i in files:
if i.endswith('.jpg') or i.endswith('.png') or i.endswith('.jpeg') or i.endswith('.bmp') or i.endswith('.gif'):
image = Image.open(os.path.join(img_path, i))
name = os.path.splitext(i)[0]
images.append(name)
2.3 将图片名称写入 Excel 表格
我们使用 openpyxl 库中的 Workbook() 方法创建一个新的 Excel 文件,并使用 active 属性选定第一个工作表。然后使用 append() 方法将图片名称逐个写入表格中。代码如下:
wb = Workbook()
sheet = wb.active
for i in range(len(images)):
sheet.append([images[i]])
wb.save(r'C:\Users\user\Desktop\test.xlsx')
3. 示例说明
下面提供两个示例:
示例一
在桌面上创建一个名为“test”的文件夹,并在其中放入名为“1.jpg”、“2.jpg”和“3.jpg”的测试图片。然后创建一个名为“test.xlsx”的 Excel 文件,用于写入图片名称。然后执行上述代码,并在控制台查看输出结果,可得到三张图片的名称(分别是“1”、“2”和“3”),并且图片名称已经成功写入到“test.xlsx”文件中。
示例二
假如我们不仅要读取桌面上“test”文件夹中的图片名称,还要读取桌面上“test2”文件夹中的图片名称,并把所有图片名称写入同一个 Excel 文件中。可以在示例代码中添加如下代码:
image_path2 = r"C:\Users\user\Desktop\test2"
files2 = os.listdir(image_path2)
for i in files2:
if i.endswith('.jpg') or i.endswith('.png') or i.endswith('.jpeg') or i.endswith('.bmp') or i.endswith('.gif'):
image = Image.open(os.path.join(img_path2, i))
name = os.path.splitext(i)[0]
images.append(name)
这样我们就可以读取两个文件夹中的所有图片,并将图片名称写入同一个 Excel 文件中。