【数据处理】文件批量改名
文件批量改名,可以用 matlab 或者 python 写脚本。python 代码如下
import os
old_path_image = '/root/userfolder/Bryant/JPEGImages/'
new_path_image = '/root/userfolder/new/JPEGImages/'
count = 1
for file in os.listdir(old_path_image):
os.rename(os.path.join(old_path_image,file),os.path.join(new_path_image,str(count).zfill(5)+".jpg"))
count+=1
涉及到几个小知识点
- 自动给数字前面补0的方法,用
string.ziff(num)
,参考 python自动给数字前面补0的方法 - 给文件重命名的方法,参考 python重命名文件,当然 old_path 可以和 new_path 是同一个目录,但是如果命名规则一样,不推荐同命名!
偷懒的话下载一些软件。我用的是batchrename,下载链接:https://pan.baidu.com/s/1nwRoA7n 密码:olwu
打开后是这个样子
可以**“添加文件”’或者“添加目录”**
右边有系统封装好的一些功能,可以直接使用
左边可以DIY自己使用的功能,不知道如何修改的,可以参考系统的功能进行修改
Note:每次操作完了以后,注意清空下文件或者目录,然后再次导入的话还是更新前的信息
最后点击**“开始重命名”**之后,大功告成
【python】根据txt内容,从数据库中抽取相应文件
python脚本,本片博客的实验对象为jpg形式的图片和xml形式的标签。
根据txt文件内容(存储形式为一行一个文件名),从数据集中选出来,eg:txt文件中有A.jpg,B.jpg。我们就从数据库中复制A.jpg,B.jpg到你的目标文件夹
import numpy as np
import os
import sys
import os.path
import shutil
fr = open('your.txt')#打开txt文件
dataxml = []
databmp = []
for line in fr.readlines():#逐行读取
lineArr = line.strip().split()#获取每一行的内容
dataxml.append(lineArr[0].format()+'.xml')#把内容存在dataxml和databmp列表中
databmp.append(lineArr[0].format()+'.jpg')
#print (np.shape(dataxml))
#print (databmp)
进行检索、复制操作
rootdir = '/your/database/file'#数据库的目录
list = os.listdir(rootdir)
#print(list)
for i in range(0,len(list)):
for j in dataxml:
if list[i]==j:
path = os.path.join(rootdir,list[i])
shutil.copy(path , '/your/target/file') #copy(A,B)为将A内容复制到B目录下