Advertisement
Guest User

Untitled

a guest
Jan 5th, 2024
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.36 KB | None | 0 0
  1. import os
  2. import tkinter as tk
  3. from tkinter import messagebox, Label, Entry, Button
  4.  
  5. def open_folder(folder_path, drive):
  6. if os.path.exists(folder_path):
  7. os.startfile(folder_path)
  8. else:
  9. messagebox.showerror("Error", f"{drive} Folder Not Found: {folder_path}")
  10.  
  11. def process_input(event=None): # Add 'event' as an optional parameter
  12. input_str = folder_input.get()
  13. parts = input_str.split()
  14.  
  15. if len(parts) == 1 and parts[0].isdigit():
  16. folder_number = int(parts[0])
  17. open_folder_j(folder_number)
  18. open_folder_n(folder_number)
  19. elif len(parts) == 2 and parts[0].upper() in ['J', 'N'] and parts[1].isdigit():
  20. drive = parts[0].upper()
  21. folder_number = int(parts[1])
  22. if drive == 'J':
  23. open_folder_j(folder_number)
  24. elif drive == 'N':
  25. open_folder_n(folder_number)
  26. else:
  27. messagebox.showerror("Error", "Invalid input format. Use format 'Drive Letter Space FolderNumber'")
  28.  
  29. def open_folder_j(folder_number):
  30. if 1 <= folder_number <= 999:
  31. parent_dir = "001-999"
  32. else:
  33. parent_dir = f"{folder_number // 1000:02}000"
  34. folder_path = f"J:/{parent_dir}/{folder_number}"
  35. open_folder(folder_path, "J")
  36.  
  37. def open_folder_n(folder_number):
  38. parent_num = folder_number // 1000 * 1000
  39. if folder_number % 1000 <= 249:
  40. sub_folder = "a"
  41. elif folder_number % 1000 <= 499:
  42. sub_folder = "b"
  43. elif folder_number % 1000 <= 749:
  44. sub_folder = "c"
  45. else:
  46. sub_folder = "d"
  47. folder_path = f"N:/Land Projects {parent_num}{sub_folder}/{folder_number}"
  48. open_folder(folder_path, "N")
  49.  
  50. if __name__ == "__main__":
  51. root = tk.Tk()
  52. root.title("Folder Opener")
  53. root.geometry("400x300")
  54.  
  55. instruction_text = "Enter drive letter (j/n) followed by the folder number (e.g., j 22500). Typing just the folder number will open both."
  56. instruction_label = Label(root, text=instruction_text, wraplength=380, justify="left")
  57. instruction_label.pack(pady=(10,0))
  58.  
  59. folder_input = Entry(root)
  60. folder_input.pack(pady=(5,5))
  61. folder_input.bind("<Return>", process_input) # Bind Enter key to process_input
  62.  
  63. open_button = Button(root, text="Open Folder", command=process_input)
  64. open_button.pack(pady=(5,10))
  65.  
  66. folder_input.focus_set()
  67.  
  68. root.mainloop()
  69.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement