python - 如何使用 OpenCV 将文件保存在正确编号的目录中
问题描述
如果我有带有数字后跟任意标题的文件夹
1 - Dog
2 - Cat
3 - Frog
...
999 - Penguin
在我的代码中,我有这样的东西(非常精简)
num = 1
for x in range(100):
cv2.imwrite("C:/path/to/1 - Dog/%d.PNG" % x, image)
if x % 5 == 0:
num += 1:
有没有办法将num
变量放入cv2.imwrite()
(当前为“C:/path/to/1 - Dog/%d.PNG”% x)的输入中,以允许我的脚本自动将文件夹切换num
为(每次满足一个条件)?
保存到的文件夹应始终遵循 的值num
,其中该值与文件夹名称中的数字相匹配。
解决方案
我认为您正在对事物进行分类,并且您只有类号,但想要与该类对应的完整扩展目录名称。
因此,我的计划是获取当前目录中名称以数字开头的所有目录的列表。然后制作一个查找表(dict),这样如果您使用类号作为键,您将获得完整的目录名称:
#!/usr/bin/env python3
import re
import os
import glob
# Get list of all entries in current directory that start with a number and are directories
# nDirs are "numbered directories"
nDirs = [path for path in glob.glob('[1-9]*') if os.path.isdir(path)]
# Make a dict where you can lookup the directory name if you have its number
nToName = {re.match(r'^(\d+)',path).group(0):path for path in nDirs}
# Print whole lookup table - just for debug
print(nToName)
{'99': '99 - Pear', '2': '2 - Apple', '1': '1 - Banana'}
所以,如果你的班级是2
并且你想要目录,你会这样做:
directory = nToName.get('2')
这将导致:
'2 - Apple'
推荐阅读
- node.js - 如何使用 MERN 或任何其他简单方式创建聊天应用程序?
- python - 如何使用python按时间间隔发送电子邮件?
- javascript - 如何从表单发送只读值?
- c - 以下C运算符如何组合
- javascript - 单击其他时停止播放音频,多次单击时没有重复事件
- javascript - 使用-> document.elemetbyid 在 javascript 的 givinen 输入中字母计数不重复
- php - 单击表中的特定行时如何查看数据库中特定行的数据
- c++ - OpenGL中的对数深度缓冲区与glad / glfw
- reactjs - React Native TypeError:无法读取未定义的属性'backgroundVideo'
- string - 拆分十六进制字符串:返回最小拆分数,使得每个拆分都是完美正方形的十六进制表示