python(Tkinter)プログラム
上記のようなプログラムを作成しました。
下記にコードを共有します。
from msilib.schema import Class
from tkinter import *
import tkinter
import os
from tkinter import filedialog
import pathlib
# 画面作成
root = tkinter.Tk()
root.geometry('600x500') # 横x縦
root.title('テキストファイル出力')
def folder_click():
dir = 'C:\\'
fld = filedialog.askdirectory(initialdir = dir)
txt_1.delete(0, tkinter.END) # 削除の処理
txt_1.insert(0,fld)
def create_text():
file_name = txt_2.get()
path = txt_1.get() +'/'+ file_name +'.txt' # 選択したフォルダのパスを受け取る。
f = open(path, 'w')
f.write(txt_3.get())
f.close()
def folder_get():
path = txt_1.get()
folder_path = 'folder.txt'
f = open(folder_path, mode='w')
GetFolderFileNames(path, 0, f)
def GetFolderFileNames(path, kaiso, f):
files = pathlib.Path(path).glob('*')#その階層のフォルダやファイルを取得
for file in files: # ループしてフォルダ内にファイルをテキストに記載する。
output = '\t' * kaiso + file.name + '\n'
f.write(output)
# プログラム5|フォルダの場合、その下の階層のフォルダやファイルをGetFolderFileNames(プログラム6)を呼び出す
if file.is_file() == False:
GetFolderFileNames(file, kaiso+1, f)
# ラベル
lbl_1 = tkinter.Label(text='フォルダ選択')
lbl_1.place(x=100, y=80)
lbl_2 = tkinter.Label(text='ファイル名入力')
lbl_2.place(x=100, y=110)
lbl_3 = tkinter.Label(text='テキスト入力')
lbl_3.place(x=100, y=140)
# テキストボックス
txt_1 = tkinter.Entry(width=30)
txt_1.place(x=180, y=80)
txt_2 = tkinter.Entry(width=30)
txt_2.place(x=180, y=110)
txt_3 = tkinter.Entry(width=30)
txt_3.place(x=180, y=140,height=100)
# ボタン
btn = tkinter.Button(root, text='フォルダ選択', command=folder_click)
btn.place(x=210, y=250)
# ボタン
btn = tkinter.Button(root, text='テキストファイル作成', command=create_text)
btn.place(x=210, y=290)
# ボタン
btn = tkinter.Button(root, text='フォルダ一覧取得', command=folder_get)
btn.place(x=210, y=330)
root.mainloop() # アプリを起動
以上になります。