小伙伴做行人检测,对文中中生成的定位数据需要重新调整,方便程序循环的读写。他是用MATLAB实现的,我看了一下,好多关于文本操作的函数,我都没看过,还得X度,长了不少见识。。。。从网上摘抄了一部分(MATLAB文件操作小结,分享+备份)。。。。同时,我觉得根据前面两篇博文,实现他的要求应该是不难的,尝试写了一下,发现是可行的嘛~~~~
图片名+坐标
"left/image_00000001_0.png": (212, 204, 232, 261), (223, 181, 259, 285), (293, 151, 354, 325), (452, 208, 479, 276), (255, 219, 268, 249), (280, 219, 291, 249);
"left/image_00000002_0.png": (212, 204, 232, 261), (223, 179, 261, 287), (293, 151, 357, 331), (452, 210, 477, 276), (257, 221, 268, 249), (282, 217, 293, 249);
"left/image_00000003_0.png": (221, 179, 259, 287), (210, 206, 234, 263), (257, 219, 270, 251), (282, 221, 293, 249), (295, 149, 361, 331), (450, 212, 477, 278);
"left/image_00000004_0.png": (221, 183, 261, 289), (217, 210, 234, 263), (257, 223, 268, 249), (282, 223, 293, 251), (299, 147, 365, 335), (448, 212, 477, 278);
文件类(seq01.txt=1、seq02.txt=2 、seq03.txt=3)+ 每一行图片名 + .txt
坐标(把原始每行括号去掉,逗号去掉,空格为一个,分号去掉)+ 数字10
#python
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'li'
import glob
import os
""" 功能:实现读取txt文件中每行内容,并按照规定格式重新存储到指定文件。 """
def get_txt_list(file,output):
print file
filename = os.path.basename(file) #获取文件夹名
z1 = filename.find('0') #查找0所在位置
z2 = filename.find('.') #查找.所在位置
s1 = filename[z1+1:z2] #获取更改格式的部分文件夹名
fid = open(file).readlines() #读取文件内所有行
for i in range(len(fid)): #遍历行
str1 = fid[i]
z3 = str1.find('/')
z4 = str1.find(':')
s2 = str1[z3+1:z4-1] #获取更改格式的部分文件名
out_name = str(s1) + '_'+ str(s2) + '.txt' #定义输出文件名
outdir = os.path.join(output,out_name) #定义输出路径
str2 = str1[z4+1:]
#替换:逗号,单个空格,多个空格,括号;然后去掉两端的空格;然后分割存放进列表ss
ss = str(str2).replace(',',' ').replace(';',' ').replace('(',' ').replace(')',' ').replace(' ',' ').replace(' ',' ').strip().split(' ')
print ss
#按照要求交换位置
i = 0
while i < len(ss):
if i % 2 != 0:
(ss[i-1],ss[i]) = (ss[i],ss[i-1])
else:
pass
i += 1
#将列表内容写入文件
f = open(outdir,'wb+')
for j in ss:
f.write(j)
f.write(' ')
f.write('10')
f.close()
print ss
print u'文档','%s'%(filename),u'转换完毕!'
input = r'C:\Users\li\Desktop\LL\*.txt' #输入文件路径
output = r'C:\Users\li\Desktop\2015.11.20' #输出文件路径
for file in glob.glob(input): #遍历输入文件夹内的所有文件
get_txt_list(file,output)