Yolo算法,在进行模型训练时,常常使用VOC数据格式。

  将图片文件复制到JPEGImages目录下,需要对文件名进行VOC标准格式编号重命名,如2020_000001.jpg,2020_000002.jpg,这样便于voc_label.py来进行后续处理。

  这个工作如果手工作业,是个体力活。因此使用python脚本来做,可以重复使用。

  python脚本如下,文件名为renamefiles.py。

 1 # -*- coding:utf-8 -*-
2 ​
3 # 读取指定目录,并将指定后缀的文件名重命名为yyyy_+6位数字编号的文件
4 ​
5 import sys,os,string
6 import getopt
7 ​
8 opts, args = getopt.getopt(sys.argv[1:], "hi:p:", ["help","input=","postfix="])
9 ​
10 def usage():
11 print(sys.argv[0] + ' -i inputdir -p postfix')
12 print(sys.argv[0] + ' -h #get help info')
13 ​
14 def rename_files(filepath, postfix):
15 #遍历filepath下所有文件,忽略子目录,将文件重命名
16 #print(filepath)
17 yyyy = '2020'
18 print(postfix)
19 newCounter = 1
20 files = os.listdir(filepath)
21 for fi in files:
22 #将目录和文件或子目录合成一个全路径
23 fi_d = os.path.join(filepath,fi)
24 if os.path.isdir(fi_d):
25 continue;
26 else:
27 #fs = os.path.join(filepath,fi_d)
28 fs = fi_d
29 #print(fi_d)
30 #取得文件全路径
31
32 lstpathext = os.path.splitext(fs)
33 ext = lstpathext[1]
34 if (ext == postfix):
35 #指定类型文件,
36 newFilename = str(newCounter).zfill(6)
37 #文件重命名
38 newFilename = yyyy + '_' + newFilename + postfix
39 newPath = os.path.join(filepath,newFilename)
40 os.rename(fs,newPath)
41 # 更新计数
42 newCounter = newCounter + 1
43 ​
44 ​
45 rename_files(sys.argv[1],sys.argv[2])
46 print('process finished!')
47 sys.exit();

  该脚本使用两个参数,参数1为图片存储目录,参数2为图片文件的后缀,要包括“.“,如".jpg"。另外,yyyy在代码中写死了,为2020,如不同,可以自行修改。

  使用方法示例:

python renamefiles.py E:\workspace\darknet\build\darknet\x64\data\voc\VOCdevkit\VOC2020\JPEGImages .jpg

使用python脚本统一重命名训练图片文件名的更多相关文章

  1. php 移动或重命名文件(图片)到另一目录下的方法有多种,这里只列出三种:

    php 移动或重命名文件(图片)到另一目录下的方法有多种,这里只列出三种:       方法一:使用copy函数   格式:copy(source,destination)   将文件从 source ...

  2. python批量重命名【截取文件名前六个字符 】

    #!/usr/bin/python # -*- coding: UTF-8 -*- import os, sys # 打开文件 path = "/home/landv/Desktop/l/& ...

  3. Python批量文件重命名

    今天,得到一个里面都是图片的文件夹,但是图片都没有后缀,因此想用Pythton批量地为所有的文件加上".jpg"的后缀,代码如下: #-*- coding:utf-8 -*- #重 ...

  4. python 小工具 重命名当前文件夹内所有的文件,升序命名

    背景:一个朋友想升序重命名他的照片,但是太多了不想手动所以,emememem os这个模块,不用说,rename,filedir等 #conding=utf8 import os path = os. ...

  5. 利用Python对文件进行批量重命名——以图片文件为例

    效果如下:0001号用户的第 i 张图片 代码: import os class ImageRename(): def __init__(self): self.path = 'C:/Users/lb ...

  6. 重命名PDF打印文件名

    Odoo系统默认打印出来的PDF文件都是以当前文档模型对象对应的模板文件名命名的,对用户来说,这样的命名很不友好. 我们希望能够将打印出来的文件名以单号命名,下面是实现这种目的的方法. 在report ...

  7. [powershell] 批量重命名,修改文件名中的部分字符串

    实例:替换一个目录下所有的字幕文件从720p到1080p ls $Path -Recurse |ForEach-Object{Rename-Item $_.FullName $_.FullName.R ...

  8. [提供可行性脚本] RHEL 7/CentOS 7/Fedora28 重命名网卡名称

    实验说明: 在许多自动化任务中,脚本往往是通过读取配置文件来获取信息的,红帽系的系统自升级之后(CentOS7/RHEL7),网卡命名采用“一致性网络设备接口”的命名方法,导致不同设备的不同网卡名称各 ...

  9. bat如何实现图片与名字匹配重命名

    背景:有一批图片按顺序截取,需要按照规定的名称进行重名命. 问题:用批处理怎么实现呢?(公司电脑手动重名时,卡的不要不要的) No1:解决:将规定的名称放入criterion.txt中,将批处理Ren ...

随机推荐

  1. Redis泛泛而谈(详细2W字)

    本文适合于刚接触redis的,文章内容比较基础,大佬请绕道. 一.NoSQL入门和概述 Ⅰ-入门概述 1.为什么用NoSQL 1)单机MySQL的美好年代 在90年代,一个网站的访问量一般都不大,用单 ...

  2. Aliyun SSL 证书签发&安装

    目录 HTTPS SSL证书 签发 和 应用 证书购买 证书申请 证书安装 参考文档 HTTPS SSL证书 签发 和 应用 - SSL证书服务(Alibaba Cloud SSL Certifica ...

  3. [bug] idea编译后没有xml文件

    原因 在maven中build 参考 https://www.cnblogs.com/lewskay/p/6422464.html https://blog.csdn.net/lovequanquqn ...

  4. [转载]centos 7(1611)安装笔记

    centos 7(1611)安装笔记   麻烦 前天我把双系统笔记本里的 deepin 的磁盘分区直接从 Windows 7 磁盘管理里格式化了,结果悲催了,开不了机了,显示: 我以为是 Window ...

  5. 列表 元组 sort

    列表 增append insert extend 迭代增加删 remove delete pop clear改 li[索引]="被修改的内容":切片"" 列表 ...

  6. centos 7 启动和关闭zabbix 服务

    systemctl start zabbix-server  启动服务端 systemctl stop zabbix-server  停止服务端 systemctl start zabbix-agen ...

  7. 按时按登录IP记录Linux所有用户操作日志的方法

    背景:Linux用户操作记录一般通过命令history来查看历史记录,但是如果因为某人误操作了删除了重要的数据,这种情况下history命令就不会有什么作用了.以下方法可以实现通过记录登陆IP地址和所 ...

  8. C++对象内存分布详解(包括字节对齐和虚函数表)

    转自:https://www.jb51.net/article/101122.htm 1.C++对象的内存分布和虚函数表: C++对象的内存分布和虚函数表注意,对象中保存的是虚函数表指针,而不是虚函数 ...

  9. VMware ESXi 7.0 U2 SLIC & Unlocker Intel NUC 专用镜像

    构建 Nano Datacenter 的两大平台 在测试环境或者家庭实验室(Home lab)中使用 VMware vSphere 作为虚拟化平台非常普遍,笔者更倾向使用 Nano Datacente ...

  10. MySQL是如何实现事物隔离?

    前言 众所周知,MySQL的在RR隔离级别下查询数据,是可以保证数据不受其它事物影响,而在RC隔离级别下只要其它事物commit后,数据都会读到commit之后的数据,那么事物隔离的原理是什么?是通过 ...