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

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

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

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

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Q&A

解決済

1回答

1306閲覧

python tkinter:フォルダを指定して、選択した画像名とサイズを変更したい

alpaca540

総合スコア18

Python 3.x

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

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

0グッド

0クリップ

投稿2020/01/19 01:36

編集2020/01/19 01:54

前提・実現したいこと

tkinterでフォルダを指定し、
フォルダ内の画像名を撮影日に変更・サイズを変更するPythonスクリプトを実行したいのですが
実行すると、画像が消えてしまいます。

下記コードで何が問題かご教示いただければ有難いです。
よろしくお願いいたします。

python

import os, glob, time import tkinter import tkinter as tk from tkinter import filedialog from PIL import Image #メインウィンドウ main_win = tk.Tk() main_win.geometry("500x120") main_win.title("画像変更:名前とサイズ") #メインフレーム main_frm = tk.Frame(main_win) main_frm.grid(column=0, row=0, sticky=tkinter.NSEW, padx=15, pady=10) #フォルダ指定 def ask_folder(): path = filedialog.askdirectory() folder_path.set(path) #画像名とサイズ変更 def re_image(): input_dir = folder_path.get() path = input_dir file_list = glob.glob(path + '/*') #画像名変更 for i, old_name in enumerate(file_list): t = os.path.getmtime(old_name) ts = time.strftime("%y%m%d", time.localtime(t)) new_name = path + "{0:s}-{1:03d}.jpg".format(ts, i+1) os.rename(old_name, new_name) #画像サイズ変更 images = glob.glob(path + '/*.jpg') for i in images: img = Image.open(i) img.thumbnail((1300, 1300), Image.ANTIALIAS) img.save(i) folder_path = tkinter.StringVar() # ウィジェット(フォルダパス) folder_label = tk.Label(main_frm, text="フォルダ指定") folder_box = tk.Entry(main_frm, textvariable=folder_path) folder_btn = tk.Button(main_frm, text="参照", command=ask_folder) # ウィジェット(ボタン) app_btn = tk.Button(main_frm, text="実行", command=re_image) # ウィジェット(配置) folder_label.grid(column=0, row=0, pady=10) folder_box.grid(column=1, row=0, sticky=tkinter.EW, padx=10) folder_btn.grid(column=2, row=0) app_btn.grid(column=1, row=1) # 配置設定 main_win.columnconfigure(0, weight=1) main_win.rowconfigure(0, weight=1) main_frm.columnconfigure(1, weight=1) main_win.mainloop()

補足情報(FW/ツールのバージョンなど)

Python3

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

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

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

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

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

guest

回答1

0

ベストアンサー

new_name = path + "{0:s}-{1:03d}.jpg".format(ts, i+1)

new_name = os.path.join(path, "{0:s}-{1:03d}.jpg".format(ts, i+1))

にしてみてはいかがですか?

投稿2020/01/19 01:46

shiracamus

総合スコア5406

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

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

alpaca540

2020/01/19 01:53

ありがとうございます!! 無事変更できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問