python做实验处理一些数据
需求:遍历一个文件下的所有文件并且筛选出.json文件,找出其中的groundtruth文件来进行读取写入.txt文件中
import os
import json
#处理每一个json文件读取生成groundtruth文件
def getgroundtruth(childfile):
f = open(childfile, 'r')
content = f.read()
a = json.loads(content)
print(a[0]['seqName'])
#print(a[0]['res']) #读取字典中的res文件并且将其写入.txt文件中
f.close()
filename = a[0]['seqName']+'_'+a[0]['tracker']+'.txt';
t=''
with open (filename,'w') as q: #打开文本文件,a[0][res]是一个总列表,i总列表中的每一个元素
for i in a[0]['res']:
for e in range(len(a[0]['res'][0])): #e为小列表的每一个小元素,遍历每一个小列表的元素求值
t=t+str(i[e])+' '
q.write(t.strip(' '))
q.write('\n')
t=''
#筛选文件目录下的文件并且读取到json文件,返回xxx.json文件名
def file_name(file_dir):
FileList=[]
for root, dirs, files in os.walk(file_dir): #os.walk方法
for file in files:
if os.path.splitext(file)[1] == '.json': #分离后缀名
FileList.append(file) #取后缀名
return FileList
#测试路径
file_dir='D:\\matlab2016\\bin\\tracker_benchmark_v1.0\\trackers\\MDNet_vot-otb\\MDNet_vot-otb'
file_list=file_name(file_dir)
#获得所有后缀名为.json文件
for fliename in file_list:
getgroundtruth(fliename)