使用python脚本统一重命名训练图片文件名
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脚本统一重命名训练图片文件名的更多相关文章
- php 移动或重命名文件(图片)到另一目录下的方法有多种,这里只列出三种:
php 移动或重命名文件(图片)到另一目录下的方法有多种,这里只列出三种: 方法一:使用copy函数 格式:copy(source,destination) 将文件从 source ...
- python批量重命名【截取文件名前六个字符 】
#!/usr/bin/python # -*- coding: UTF-8 -*- import os, sys # 打开文件 path = "/home/landv/Desktop/l/& ...
- Python批量文件重命名
今天,得到一个里面都是图片的文件夹,但是图片都没有后缀,因此想用Pythton批量地为所有的文件加上".jpg"的后缀,代码如下: #-*- coding:utf-8 -*- #重 ...
- python 小工具 重命名当前文件夹内所有的文件,升序命名
背景:一个朋友想升序重命名他的照片,但是太多了不想手动所以,emememem os这个模块,不用说,rename,filedir等 #conding=utf8 import os path = os. ...
- 利用Python对文件进行批量重命名——以图片文件为例
效果如下:0001号用户的第 i 张图片 代码: import os class ImageRename(): def __init__(self): self.path = 'C:/Users/lb ...
- 重命名PDF打印文件名
Odoo系统默认打印出来的PDF文件都是以当前文档模型对象对应的模板文件名命名的,对用户来说,这样的命名很不友好. 我们希望能够将打印出来的文件名以单号命名,下面是实现这种目的的方法. 在report ...
- [powershell] 批量重命名,修改文件名中的部分字符串
实例:替换一个目录下所有的字幕文件从720p到1080p ls $Path -Recurse |ForEach-Object{Rename-Item $_.FullName $_.FullName.R ...
- [提供可行性脚本] RHEL 7/CentOS 7/Fedora28 重命名网卡名称
实验说明: 在许多自动化任务中,脚本往往是通过读取配置文件来获取信息的,红帽系的系统自升级之后(CentOS7/RHEL7),网卡命名采用“一致性网络设备接口”的命名方法,导致不同设备的不同网卡名称各 ...
- bat如何实现图片与名字匹配重命名
背景:有一批图片按顺序截取,需要按照规定的名称进行重名命. 问题:用批处理怎么实现呢?(公司电脑手动重名时,卡的不要不要的) No1:解决:将规定的名称放入criterion.txt中,将批处理Ren ...
随机推荐
- 一些代码小技巧&经典代码
请说明逻辑与(&&)在下边表达式中起到的重要作用 count != 0 && sum/count 答:该表达式使用逻辑与(&&)来确保 sum/coun ...
- BUAA OS实验调试指南:从看懂到看开
一般的调试流程其实很简单:发现问题,稳定复现,确定临界条件,定位问题,修复问题,核查结果.迭代这个过程,形成一个闭环 老实说,OS的实验代码,开箱体验极差,程序跳来跳去,进了Lab4后还要考虑内核态切 ...
- mysql注入getshell
0x00 利用条件 root权限 secure_file_priv=为空或者在网站根目录下(网站根目录为d:\www,secure_file_priv=d:\也可以) 知道绝对路径 gpc关闭,这个应 ...
- [bug] Hive:Caused by: MetaException(message:Hive Schema version 2.1.0 does not match metastore's schema version 1.2.0 Metastore is not upgraded or corrupt)
参考 https://www.cnblogs.com/liupuLearning/p/6610307.html 少了创建hive数据库一步
- 【转载】8.2.1 CPU性能测试工具
(KVM连载) 8.2.1 CPU性能测试工具 01/08/2013master 1 Comment 8.2.1 CPU性能测试工具 CPU是计算机系统中最核心的部件,CPU的性能直接决定了系统的计算 ...
- 搭建LAMP环境部署Ecshop电商网站
实战-部署Ecshop电商网站 实验环境 Centos7 ip:192.168.121.17 一.关闭防火墙和selinux [root@localhost ~]# systemctl stop fi ...
- Linux_网络基础管理
一.网卡的命名 1.传统网卡命名 eth0.eth1.eth2.eth3......... wlan0.wlan1.waln2.wlan3......... 2.RHEL7命名机制 systemd对网 ...
- Yarn 集群环境 HA 搭建
环境准备 确保主机搭建 HDFS HA 运行环境 步骤一:修改 mapred-site.xml 配置文件 [root@node-01 ~]# cd /root/apps/hadoop-3.2.1/et ...
- JLINK下载出现问题
JLINK 下载报错: RAM CHECK FAILED 说法一: 有一种说法是版本的问题 http://tieba.baidu.com/p/1902940329?red_tag=d180765763 ...
- [论文阅读笔记] Community aware random walk for network embedding
[论文阅读笔记] Community aware random walk for network embedding 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 先前许多算法都 ...