質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

656閲覧

拡張子のついていない画像群に一括で拡張子をつけたい

xeno

総合スコア16

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2021/10/12 12:06

機械学習用にダウンロードした画像のデータセットに拡張子がついていなかったので拡張子をつけたいです。
具体的には、datasetというフォルダの中に学習用が10個、検証用とテスト用が1個ずつという感じです。
何度も実行するのは避けたいので、何とか学習用、検証用、テスト用の画像に一括で拡張子つけたいと考えていますが上手くいきませんので教えていただきたいです。

import os from pathlib import Path from PIL import Image import cv2 import numpy as np def get_paths(input_dir): paths = sorted([x for x in input_dir.iterdir()]) return paths # ディレクトリ指定 input_dir = Path(r"./dataset/") #---------- 指定フォルダ内のファイル拡張子を変更 ----------# for f in get_paths(input_dir): f.rename(input_dir + '.jpg')

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

datasetというフォルダの中にサブフォルダがあるらしいのでそれに対応しました。

Python

1import os 2 3def add_file_ext_in_folder(input_dir, ext): 4 for name in os.listdir(input_dir): 5 obj = os.path.join(input_dir, name) 6 if os.path.isdir(obj): 7 add_file_ext_in_folder(obj, ext) 8 elif os.path.isfile(obj): 9 os.rename(obj, obj + ext) 10 11input_dir = r"./dataset/" 12add_file_ext_in_folder(input_dir, '.jpg')

以前のコードは以下です。

Python

1import os 2 3def add_file_ext_in_folder(input_dir, ext): 4 for name in os.listdir(input_dir): 5 fname = os.path.join(input_dir, name) 6 os.rename(fname, fname + ext) 7 8input_dir = r"./dataset/" 9add_file_ext_in_folder(input_dir, '.jpg')

投稿2021/10/12 12:40

編集2021/10/12 14:26
lehshell

総合スコア1147

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

xeno

2021/10/12 12:58

申し訳ありません。 datasetというディレクトリ内にある学習用、検証用、テスト用のディレクトリに保存されている画像に対して拡張子を付与したいです。 教えて頂いたものだと、学習用、検証用、テスト用のディレクトリに対して拡張子が付与されてしまいます。
lehshell

2021/10/12 14:27

datasetというディレクトリ内は画像ファイルだけと読み取ってしまいました。 サブフォルダに対応したコードに更新しました。
xeno

2021/10/21 02:54

追加の要望にも応えて頂きありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問