python - 循环浏览google colab中多个文件夹中的不同图像并将图像格式从一种转换为另一种
问题描述
对于这项任务,我编写了以下代码:
folder_path = '/tmp/characters/train1_set'
for fldr in os.listdir(folder_path):
sub_folder_path = os.path.join(folder_path, fldr)
for filee in os.listdir(sub_folder_path):
file_path = os.path.join(sub_folder_path, filee)
im = Image.open(file_path)
rgb_im = im.convert('RGB')
rgb_im.save('/tmp/Train_jpg/{}/{}.jpg'.format(fldr,filee.split('.')[0]))
但我收到错误:
FileNotFoundError Traceback (most recent call last)
<ipython-input-8-ea4ef81a0e50> in <module>()
7 im = Image.open(file_path)
8 rgb_im = im.convert('RGB')
----> 9 rgb_im.save('/tmp/Train_jpg/{}/{}.jpg'.format(fldr,filee.split('.')[0]))
10
/usr/local/lib/python3.6/dist-packages/PIL/Image.py in save(self, fp, format, **params)
2097 fp = builtins.open(filename, "r+b")
2098 else:
-> 2099 fp = builtins.open(filename, "w+b")
2100
2101 try:
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/Train_jpg/ગ/aakar-medium_38_ગ_15.jpg'
请帮我解决我的问题。提前致谢。
解决方案
您的代码中有一些错误,我已更正。
您收到错误是因为filee
没有正确的路径。
代码:
import os
from PIL import Image
folder_path = '/tmp/characters/train1_set'
target_path = '/tmp/Train_jpg'
for fldr in os.listdir(folder_path):
sub_folder_path = os.path.join(folder_path, fldr)
if fldr not in os.listdir(target_path):
os.mkdir(os.path.join(target_path,fldr))
for filee in os.listdir(sub_folder_path):
file_path = os.path.join(sub_folder_path, filee)
im = Image.open(file_path)
rgb_im = im.convert('RGB')
rgb_im.save('data/img1/{}/{}.jpg'.format(fldr,filee.split('.')[0]))
推荐阅读
- sql - 使用 Bash 脚本构建 SQL 更新语句
- generics - 具有通用单独参数的功能调用中的不兼容实际参数。一种使用锚定类型的方法?
- java - 奇怪的java重命名json属性名
- javascript - npm 编译警告(解析错误:Unexpected token, expected ";" )
- jenkins - 如何根据特定条件从詹金斯发布松弛通知到多个渠道
- internationalization - 带有 Nuxt.js i18n 的动态 CTA url
- android - Android 折叠工具栏,如 Android 设置应用程序
- php - GET 变量在 PHP 脚本中不起作用。主题支持天这是一个服务器问题
- ios - b2clogin.com 域的问题。对于 Mac 和 IOS,它会显示来自其他站点的用户名和密码
- html - Visual Studio C# Web 窗体,带有 Bootstrap 4