python でGUIアプリケーションを作成しております。
仕様はおよそいかのとおりで考えています
1フォルダ参照,参照したパスを表示
2テキストボックスに入力されたファイル名を取得
3実行でファイル名を変更
A.仕様1の参照したパスを反映させることができず困っています(set関数がうまくいかない?)。
B.ウィンドウを閉じる処理をしてもデバックが終わらずコンソールで
Ctr+Cをうち強制終了させる必要があります
その他の部分でまだ仕様を満たすために変化点を加えていくつもりです。
つきましてはA,Bについてアドバイスいただきたく存じます。
import os,sys
from tkinter import *
from tkinter import ttk
from tkinter import messagebox
from tkinter import filedialog
import shutil
import glob
import tkinter as tk
import tkinter.ttk as ttk
from tkinter.scrolledtext import ScrolledText
#ファイルネームの取得
def input_filename():
result = text.get('1.0','end -1c')
list=result.split()
#print(list) print(list)
#フォルダの指定
def reference_folder_dicision():
iDir = os.path.abspath(os.path.dirname(file))
iDirPath = filedialog.askdirectory(initialdir = iDir)
print(iDirPath)
reference_folder_entry_box.set(iDirPath)
#originalデータが保存されているフォルダへのパス
folder_path ='C:\Users\practice'
#originalデータが保存されているフォルダへのパス
original_folder_path = 'C:\Users\practice'
#originalデータが保存されているディレクトリにコピーファイル保存フォルダの作成
if not os.path.exists(folder_path +'\create_folder'):
os.mkdir(folder_path +'\create_folder')
print("フォルダを作成")
#csvファイルをコピー
l = glob.glob(original_folder_path+'*.csv')
print(l)
N = len(l)
for i in range(N):
shutil.copy2(l[i],
folder_path +'\create_folder')
l = glob.glob(folder_path+'\create_folder'+'*.csv')
r=sorted(l, key=lambda f: os.stat(f).st_mtime, reverse=True)
print(l)
#for i in range(N):
os.rename(r[i],folder_path+'\create_folder'+''+str([i])+'.csv')
#メインウィンドウ
root = tk.Tk()
root.title('rename.exe')
root.geometry("700x700")
#メインフレーム
frame = ttk.Frame(root)
frame.grid(column=0, row=0, sticky=tk.NSEW, padx=5, pady=10)
各種ウィジェットの作成
#種別ごとに記載
#APPの名称
label = ttk.Label(frame, text="rename:\n")
label.grid(row=0, column=0)
#新しいファイルネーム記載
text = ScrolledText(frame, font=("", 15))
text.grid(row=3, column=0)
#コピーしたいフォルダの選択
reference_folder_label = ttk.Label(frame, text="フォルダ参照")
reference_folder_buttom = ttk.Button(frame, text="参照", command=reference_folder_dicision)
reference_folder_entry_box = StringVar()
reference_folder_entry = ttk.Entry(frame, textvariable="aaaa", width=50)
reference_folder_label.grid(row=1, column=0)
reference_folder_buttom.grid(row=1, column=3)
reference_folder_entry.grid(row=1, column=2)
#実行時処理
button_execute = ttk.Button(frame, text="実行", command=input_filename)
button_execute.grid(row=4, column=0)
root.mainloop()
回答1件
あなたの回答
tips
プレビュー