请写一段代码,要求:现在有两个文件夹,一个文件夹train,里边放有7万张图片,另一个文件夹labels,里面放了和文件夹train里边图片名称对应的的txt文件,一张图片对应一个txt文件,图片和txt是一一对应的。现在将val文件夹中txt文件含有类别4的txt筛选出来并保存到新的文件夹labels1,(txt文件是用于yolov5进行训练的文件类型),筛选出来的txt文件相对应的图片也保存到新的文件夹train1
时间: 2024-03-21 12:39:46 浏览: 40
以下是Python代码示例:
```python
import os
import shutil
# 定义源文件夹和目标文件夹路径
train_path = "train/"
label_path = "labels/"
val_path = "val/"
train1_path = "train1/"
label1_path = "labels1/"
# 获取val文件夹中txt文件含有类别4的文件名
txt_files = []
for file_name in os.listdir(val_path):
if file_name.endswith(".txt"):
with open(os.path.join(val_path, file_name), "r") as f:
content = f.read()
if "4" in content:
txt_files.append(file_name)
# 复制txt文件和对应的图片到新的文件夹
for txt_file in txt_files:
shutil.copy(os.path.join(label_path, txt_file), label1_path)
img_file = os.path.splitext(txt_file)[0] + ".jpg"
shutil.copy(os.path.join(train_path, img_file), train1_path)
```
上述代码使用了Python的os和shutil库,逐一遍历val文件夹中的txt文件,判断其中是否含有类别4,将符合条件的txt文件和对应的图片复制到新的文件夹中。其中,os.listdir()方法用于获取指定文件夹内的所有文件名,os.path.join()方法用于将文件夹路径和文件名拼接成完整的文件路径,shutil.copy()方法用于进行文件复制操作。
阅读全文