深度学习数据整理——Python常用的遍历操作

在训练CNN或是其他的深度学习网络时,经常要做的一件事便是准备数据,这是一件比较“烦人”的事情,此处以Python为基础整理几个经常能用到的数据处理脚本以及需要注意的地方。

Python遍历指定目录下的所有文件

利用Python脚本遍历指定目标下的文件

@requires_authorization
"""
注意:从os.listdir中读取的文件名list是无序的,利用sort方法可以使其
按照str.lower的方式进行排序
此外还有几种常用的关于os的操作
os.remove(path)
os.rename(src,dst)
"""
import os
rootDir="/home/xcz/data/"
Lists=os.listdir(rootDir)
Lists.sort(key=str.lower)
for lists in Lists:
   path=os.path.join(rootDir,lists)

利用Python脚本读取txt文件中的标注信息

@requires_authorization
"""
在读取到以下代码中的line信息后,经常用到的方法有以下几个
line=line.split(",")  一“,”分割获得一个list
line[0]=line[0].replace(";","")  去掉line[0]中的分号,
注意去掉不易发现的'\n'
"""
filename="/home/xcz/data/1.txt"
f=open(filename)
for line in f.readlines():
    line=line.split("")

利用Python脚本随机分训练集与测试集

@requires_authorization
"""
代码从另一篇博客上获得后略加修改得到,此处用以保存而已
"""
import os
import sys
import random

start = int(0)
end = int(15573)
test = int(1500)
allNum = end-start+1

b_list = range(start,end)
blist_webId = random.sample(b_list, test)
blist_webId = sorted(blist_webId) 
allFile = []
testFile = open('/home/xcz/data/VOCdevkit/VOC2007/ImageSets/Main/test.txt', 'w')
trainFile = open('/home/xcz/data/VOCdevkit/VOC2007/ImageSets/Main/trainval.txt', 'w')
for i in range(allNum):
    allFile.append(i+1)
for test in blist_webId:
    allFile.remove(test)
    test2=""
    if(test<10):
        test2=test2+"00000"+str(test)
    elif test<100:
        test2=test2+"0000"+str(test)
    elif test<1000:
        test2=test2+"000"+str(test)
    elif test<10000:
        test2=test2+"00"+str(test)
    else:
        test2=test2+"0"+str(test)

    testFile.write(test2 + '\n')   
for train in allFile:
    train2=""
    if(train<10):
        train2=train2+"00000"+str(train)
    elif train<100:
        train2=train2+"0000"+str(train)
    elif train<1000:
        train2=train2+"000"+str(train)
    elif train<10000:
        train2=train2+"00"+str(train)
    else:
        train2=train2+"0"+str(train)  

    trainFile.write(str(train2) + '\n')
testFile.close()
trainFile.close()
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值