根据图像类型对图像进行排序,并使用 typescript 将它们放在相应的文件夹中
Posted
技术标签:
【中文标题】根据图像类型对图像进行排序,并使用 typescript 将它们放在相应的文件夹中【英文标题】:Sort images according to their type and put them in a the corresponding folder with typescript 【发布时间】:2020-12-04 09:37:45 【问题描述】:我想根据图片的类型(好、中、坏)对图片进行排序,然后放到相应的文件夹中。
我的数据是一个带有图片名称+标签的对象
export interface data = image: string, label: 'good' | 'medium' | 'bad'
export const DATA: data =
image: 'name-of-image-1, label: 'good'
image: 'name-of-image-2, label: 'bad' ,
image: 'name-of-image-3, label: 'good' ,
...,
image: 'name-of-image-n, label: 'medium'
图片在服务器上,路径例如:smb://test/images/
所以我在 smb://test/images/name-of-image-1 找到了我的第一张图片
我想根据标签映射我的数据并将图像复制到相应的文件夹中。 (将带有“bad”标签的图像放入文件夹./bad。
你有想法用 javascript (node) 做到这一点吗?
【问题讨论】:
一个可能的起点:nodejs.org/api/fs.html 我使用 fs.copyFile 但我有一个错误:[错误:EISDIR:对目录的非法操作,copyfile './package.json' -> './data'] errno: - 21、代码:'EISDIR',系统调用:'copyfile',路径:'./package.json',dest:'./data' 请将此代码也添加到您的问题中。 【参考方案1】:您提供的代码示例有一些问题在这里解决:
export interface Data
image: string,
label: 'good' | 'medium' | 'bad'
export const data: Data[] = [
image: 'name-of-image-1', label: 'good' ,
image: 'name-of-image-2', label: 'bad' ,
image: 'name-of-image-3', label: 'good' ,
image: 'name-of-image-n', label: 'medium'
];
为了解决您的问题,您可以使用.reduce
对图像label
进行相应的分组:
const sorted = data.reduce((prev, current) => (
...prev,
[current.label]: [
...prev[current.label],
current.image
]
), good: [], medium: [], bad: [] );
sorted
的响应如下
"good": [
"name-of-image-1",
"name-of-image-3"
],
"medium": [
"name-of-image-n"
],
"bad": [
"name-of-image-2"
]
【讨论】:
是的,这部分我成功了,但我不知道如何将图像放入文件夹:/以上是关于根据图像类型对图像进行排序,并使用 typescript 将它们放在相应的文件夹中的主要内容,如果未能解决你的问题,请参考以下文章