前提
pythonで選択したディレクトリ内のファイル名の頭に任意の文字を追加するというのを作ろうとしています
uiはできているのですがMain関数のfor文内でのエラーを修正できず困っています
発生している問題・エラーメッセージ
Main関数のfor文内name=の行でエラーが出ています
TypeError: expected str, bytes or os.PathLike object, not int
該当のソースコード
python
1import os,sys 2import glob 3import tkinter as tk 4from tkinter import filedialog 5 6def dirdialog(): 7 global iDirPath 8 iDir = os.path.abspath(os.path.dirname(__file__)) 9 iDirPath = filedialog.askdirectory(initialdir = iDir) 10 entry1.set(iDirPath) 11 12def Main(): 13 global iDirPath,cnt,paths,NameEntry 14 print(iDirPath) 15 temp_path=str(iDirPath) 16 paths = glob.glob(temp_path+"/*") 17 print(paths) 18 for p in range(len(paths)): 19 name = os.path.splitext(os.path.basename(p))[0] 20 print(name) 21 new_file_name=NameEntry,name 22 print(new_file_name) 23 os.rename(os.path.join(iDirPath,paths[p]),os.path.join(iDirPath+new_file_name)) 24 25root=tk.Tk() 26root.title("name changer") 27cvs=tk.Canvas(root,width=400,height=200) 28cvs.pack() 29 30IDirLabel = tk.Label(text="フォルダ参照→") 31IDirLabel.place(x=0,y=10) 32 33entry1 = tk.StringVar() 34IDirEntry = tk.Entry(textvariable=entry1, width=40) 35IDirEntry.place(x=80,y=10) 36 37IDirButton = tk.Button(text="参照",width=5,height=1,command=dirdialog) 38IDirButton.place(x=350,y=7) 39 40NameLabel = tk.Label(text="名前") 41NameLabel.place(x=45,y=80) 42 43entry2 = tk.StringVar() 44NameEntry = tk.Entry(textvariable=entry2, width=10) 45NameEntry.place(x=80,y=80) 46 47button1 = tk.Button(text="実行",width=5,height=1,command=Main) 48button1.place(x=200,y=170) 49 50button2 = tk.Button(text=("閉じる"),width=5,height=1,command=quit) 51button2.place(x=250,y=170) 52 53root.mainloop() 54
試したこと
エラーについて調べてみましたがよくわからずこちらに質問させていただきました。
補足情報(FW/ツールのバージョンなど)
python 3.7.9
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/09/03 14:58
2022/09/03 15:01
2022/09/03 15:03
2022/09/03 15:04
2022/09/03 15:10
2022/09/03 15:12
2022/09/03 15:17
2022/09/03 15:20
2022/09/03 15:30
2022/09/04 00:45