我不是开发人员,我对编程的了解非常有限。我了解如何使用和操作 python 脚本,但是编写它们是我尚未学习的东西。请有人能帮助一个菜鸟 :)
我正在使用 sightengine 的 API 来评估一个大的 .jpg 图像文件夹的清晰度和颜色属性。 API 的文档仅提供了一个小脚本,用于一次评估一张图像。我已经与 Sight Engines 支持人员谈过,他们不愿意提供用于批处理的脚本,考虑到所有其他 API 公司通常这样做,这很奇怪。
我需要一些帮助来创建一个 for 循环,该循环将使用 python 脚本遍历图像文件夹并将 API 结果输出到单个 JSON 文件中。对于如何构建此脚本的任何帮助,我们将不胜感激。
这是一个简单的图像检查的 sightengine 代码:
from sightengine.client import SightengineClient
client = SightengineClient("{api_user}", "{api_secret}")
output = client.check('properties','type').set_file('/path/to/local/file.jpg')
谢谢
最佳答案
这部分是一种猜测,因为我不知道 output
会是什么样子。我假设它以 json 格式返回。如果是这种情况,您可以将各个 json 响应附加到单个 json 结构中,然后使用 json.dump()
写入文件。
所以那部分是猜测。另一方面是您想遍历 jpg 文件,这可以通过使用 os
和 fnmatch
来完成。只需调整根目录/文件夹,让它在搜索所有 .jpg
扩展名时遍历。
from sightengine.client import SightengineClient
import os
from fnmatch import fnmatch
import json
client = SightengineClient("{api_user}", "{api_secret}")
# Get your jpg files into a list
r = 'C:/path/to/local'
pattern = "*.jpg"
filenames = []
for path, subdirs, files in os.walk(r):
for name in files:
if fnmatch(name, pattern):
#print (path+'/'+name)
filenames.append(path+'/'+name)
# Now iterate through those jpg files
jsonData = []
for file in filenames:
output = client.check('properties','type').set_file(file)
jsonData.append(output)
with open('C:/result.json', 'w') as fp:
json.dump(jsonData, fp, indent=2)
关于python - For 循环遍历图像文件夹并输出到单个 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56770215/