python读取txt文档中的ID号,批量提取出文件夹中对应ID号的图像
时间: 2024-02-11 13:08:45 浏览: 89
可以使用Python中的文件操作和正则表达式来实现这个功能。
首先,你需要读取txt文档中的ID号,可以使用Python中的`open()`函数来打开文件,然后使用`readlines()`函数将文件内容按行读取到一个列表中。
接着,你需要批量提取出文件夹中对应ID号的图像,可以使用Python中的`os`模块来实现文件夹操作。具体步骤如下:
1. 使用`os.listdir()`函数获取文件夹中所有文件的文件名列表。
2. 使用正则表达式匹配每个文件名,提取出文件名中的ID号。
3. 判断该ID号是否在读取的txt文档中,如果在,则将该文件复制到指定的目录中。
下面是一个示例代码,供你参考:
```python
import os
import re
import shutil
# 定义txt文件路径、图像文件夹路径、输出文件夹路径
txt_path = "id_list.txt"
img_folder = "image_folder"
output_folder = "output_folder"
# 读取txt文件中的ID号列表
with open(txt_path, "r") as f:
id_list = [line.strip() for line in f.readlines()]
# 遍历图像文件夹中的所有文件
for filename in os.listdir(img_folder):
# 使用正则表达式匹配文件名中的ID号
match = re.search(r"\d+", filename)
if match:
id = match.group()
# 判断该ID号是否在txt文件中
if id in id_list:
# 如果在,则将该文件复制到输出文件夹中
src_path = os.path.join(img_folder, filename)
dst_path = os.path.join(output_folder, filename)
shutil.copyfile(src_path, dst_path)
```
以上代码中,我们使用了正则表达式`\d+`来匹配文件名中的数字部分,然后使用了`shutil.copyfile()`函数来复制文件。你可以根据自己的需求修改文件路径和正则表达式。
阅读全文