统计清理数据集文件用到的命令和python脚本

统计、处理数据集文件时,有一些命令和脚本可能会用到,记录在这里以免之后在这些小问题上浪费时间。
一、命令
1.查找文件夹下指定名字的文件
例如:   find . -name "*det*"

其中 .表示当前目录,*det*表示查找文件名中含det的文件。

2.删除当前文件夹下的所有文件
rm *       ## 在删除之前可以使用 find * 查看想要删除的内容与你想的是否相同
3.查找文件夹下指定名字的文件并删除
find . -name "*det*" | xargs rm -rf
4.查找文件夹下指定名字的文件并复制到指定路径
find . -name "*det*" | xargs cp -t 指定path
5.记录运行某命令之后的输出结果到txt文件中
例如:   ls | tee ls_rec.txt
二、Python脚本
1.将某文件夹下的文件名保存到txt文件中

例如,pascal_voc格式数据集中ImageSets/Main中的train.txt、trainval.txt等文件就可以通过此方法生成

import os
file_path = "/home/……"
path_list = os.listdir(file_path)

path_name = []

for i in path_list:
	path_name.append(i.split(".")[0])  # 去掉后缀名
for file_name in path_name:
	with open("/home/……/train.txt","a") as F:
		F.write(file_name + "\n")
		print(file_name)
	F.close()
2.将与xml(可为其他文件类型)文件名相同的图片copy到指定文件夹中

由于我的数据集图片含有很多未标注的,所以为了将有有效标注的图片筛选出来,使用下方脚本。参考1.进行扩充。

import os
import shutil

file_path1 = "/home/……"
path_list1 = os.listdir(file_path1)

file_path2 = "/home/……"
path_list2 = os.listdir(file_path2)

path_name1 = []
path_name2 = []

for x in path_list1:
	path_name1.append(i.split(".")[0])  # 去掉后缀名
for i in path_list2:
	path_name2.append(i.split(".")[0])  # 去掉后缀名

for a in path_name1:
	for b in path_name2:
		if a==b:
			img_path = os.join(/……,str(b)+'.jpg')
			shutil.copy(img_path,'指定path')
		else
			continue
3.统计当前文件夹下文件总数
import os
DIR = "/home……"
print("文件夹内文件个数:",len(os.listdir(DIR)))
4.统计txt文件中共有多少行 (pascal_voc格式中每行代表一个图片名称)
file_name = "/home……"
myfile = open(file_name)

lines = len(myfile.readlines())
print("There are %d lines in ***.txt",%(lines))
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值