-
-
Notifications
You must be signed in to change notification settings - Fork 33.2k
Closed as not planned
Closed as not planned
Copy link
Labels
Description
Bug report
Bug description:
import tkinter as tk
from tkinter import filedialog
import os
class FileDialogTest:
def __init__(self, file_extensions):
self.file_extensions = file_extensions
self.selected_file_type = None
def _format_file_extensions(self):
return [(f"{ext} files", ext) for ext in self.file_extensions]
def _get_file_type(self, file_path):
_, ext = os.path.splitext(file_path)
return ext
def select_file_to_save(self, default_name="testfile"):
root = tk.Tk()
root.withdraw()
file_path = filedialog.asksaveasfilename(
title="Select a file to save",
filetypes=self._format_file_extensions(),
initialfile=default_name
)
if not file_path:
raise FileNotFoundError("No file selected.")
self.selected_file_type = self._get_file_type(file_path)
if not self.selected_file_type:
# Append the default extension based on the selected file type
self.selected_file_type = self.file_extensions[0] # Default to the first extension if none is selected
file_path += self.selected_file_type
return file_path, self.selected_file_type
# Define file extensions for testing
file_extensions = ['.txt', '.csv']
# Initialize FileDialogTest with file extensions
file_dialog_test = FileDialogTest(file_extensions)
# Test select_file_to_save method
try:
file_path, selected_file_type = file_dialog_test.select_file_to_save()
print(f"Selected file path: {file_path}")
print(f"Selected file type: {selected_file_type}")
except FileNotFoundError as e:
print(e)
CPython versions tested on:
3.11
Operating systems tested on:
Windows