[PYTHON] Classer les boîtes de dialogue de fichiers / dossiers fréquemment utilisées

Boîte de dialogue Classer le fichier / dossier

Je crée souvent des écrans de dialogue de fichiers pendant le travail. Créez les éléments suivants à chaque fois.

Je l'ai classé afin qu'il puisse être facilement réutilisé comme mémoire. Voici le code source. Il inclut également l'héritage de classe (pour votre propre mémorandum).

import os 
import csv
import tkinter as tk
from tkinter import filedialog


class Dialog_menu_screen(object):

	def __init__(self,screen_title,screen_size,path_label,dialog_btn,start_btn):
		self.screen_title = screen_title
		self.screen_size = screen_size
		self.path_label = path_label
		self.dialog_btn = dialog_btn
		self.start_btn = start_btn
	

	#Affichage de l'écran principal
	def show_main_screen(self):
		root = tk.Tk()
		root.title(self.screen_title)
		root.geometry(self.screen_size)

		#Création de widgets
		#Vous pouvez lire une méthode avec un argument avec lambda.
		path_label = tk.Label(root,text=self.path_label)
		path_box = tk.Entry(root,width=45)
		dialog_btn = tk.Button(root,text=self.dialog_btn,command=lambda:self.show_dialog(path_box))
		start_btn = tk.Button(root,width=10,text=self.start_btn,command=lambda:self.execute_button(path_box.get()))
		
		#Position du widget
		path_box.grid(row=0,column=1,padx=10,pady=10)
		dialog_btn.grid(row=0,column=2,padx=10,pady=10)
		path_label.grid(row=0,column=0,padx=10,pady=10)
		start_btn.grid(row=1,column=2,padx=10,pady=10)

		root.mainloop()

	
	#Afficher la boîte de dialogue de fichier
	def show_dialog(self,path_box):
		file_type = [('texte csv','*.csv')] 
		folder_place = 'C:\\pg'
		file_path = filedialog.askopenfilename(filetypes = file_type, initialdir = folder_place) 

		#Si vous n'appuyez pas sur le bouton d'annulation
		if len(file_path) > 0 :
			path_box.delete(0,tk.END)
			path_box.insert(tk.END,file_path)

	
	#Afficher les données csv.
	def execute_button(self,path_box):
		except_list = []
		with open(path_box,mode='r') as f:
			read_file = csv.reader(f)
			list_data = [row for row in read_file]
			print(list_data)
			return list_data


class Dialog_directory_screen(Dialog_menu_screen):
	#Afficher la boîte de dialogue du dossier
	def show_dialog(self,path_box):
		folder_place = 'C:\\pg'
		folder_path = filedialog.askdirectory(initialdir = folder_place) 

		#Si vous n'appuyez pas sur le bouton d'annulation
		if len(folder_path) > 0 :
			path_box.delete(0,tk.END)
			path_box.insert(tk.END,folder_path)


	def execute_button(self,path_box):
		print(os.listdir(path_box))

	
if __name__ =="__main__":
	screen_title = "lire csv"
	screen_size = "500x90"
	path_label = "Emplacement du fichier:"
	dialog_btn = 'Emplacement du fichier...'
	start_btn = 'Courir'

	csv_instance = Dialog_menu_screen(screen_title,screen_size,path_label,dialog_btn,start_btn)
	csv_instance.show_main_screen()


	screen_title = "Parcourir le contenu du dossier"
	directry_instance = Dialog_directory_screen(screen_title,screen_size,path_label,dialog_btn,start_btn)
	directry_instance.show_main_screen()


c'est tout.

Recommended Posts

Classer les boîtes de dialogue de fichiers / dossiers fréquemment utilisées
[Linux] Commandes Linux fréquemment utilisées (opération sur fichier)
[Linux] Commandes Linux fréquemment utilisées (opération de dossier)
pyenv Commandes fréquemment utilisées
Commande tmux fréquemment utilisée
Commandes Linux fréquemment utilisées
Commandes Linux fréquemment utilisées
Commandes Linux fréquemment utilisées
Commande pip fréquemment utilisée
Options de commande ps fréquemment utilisées
Sous-packages de SciPy fréquemment utilisés
Extraits de code Python fréquemment utilisés
Commandes fréquemment utilisées dans virtualenv