Когда я запускаю программу python, автоматически открывается файловый менеджер. Я хотел бы, чтобы это происходило только тогда, когда пользователь нажимает кнопку «Открыть» .
Выше было решено.
Проблема, с которой я сталкиваюсь в настоящее время, с точки зрения Шифрование или дешифрование текста - это то, что функциональность загрузки файла работает или вводит строковую функциональность. Оба не работают в одной программе.
Буду признателен за любую помощь.
from tkinter import *
from tkinter import filedialog
class Caesar(Frame):
LETTERS = "abcdefghijklmnopqrstuvwxyz"
def UploadAction(self):
filename = filedialog.askopenfilename(initialdir="/",
title="Open File",
filetypes=(("Text Files", "*.txt"), ("All Files", "*.*")))
with open('caesartest.txt') as f:
contents = f.read().splitlines()
contents = ' '.join(map(str, contents))
return contents
def __init__(self, pencere):
Frame.__init__(self, pencere)
self.pencere = pencere
Label(pencere, text="Enter your message: ", relief=GROOVE, width=20).place(x=20, y=30)
self.Ent1 = Entry(pencere, width=30)
self.Ent1.place(x=230, y=30)
Label(pencere, text="Upload a .txt file: ", relief=GROOVE, width=20).place(x=20, y=80)
Button(pencere, text="Open", relief=GROOVE, font="bold", command=self.UploadAction).place(x=230, y=80)
self.Ent3 = Entry(pencere, width=24)
self.Ent3.place(x=280, y=80)
self.Ent3.insert(100, self.UploadAction())
Label(pencere, text="Enter key: ", relief=GROOVE, width=20).place(x=20, y=120)
self.Ent2 = Entry(pencere, width=30)
self.Ent2.place(x=230, y=120)
Button(pencere, text="Encrypt", relief=GROOVE, font="bold", command=self.Encrypt).place(x=200, y=150)
Button(pencere, text="Decrypt", relief=GROOVE, font="bold", command=self.Decrypt).place(x=280, y=150)
Label(pencere, text="Result: ", relief=GROOVE, width=20).place(x=20, y=203)
self.RESULT = Entry(pencere, width=30)
self.RESULT.place(x=230, y=200)
def Encrypt(self):
key = int(self.Ent2.get())
length = len(self.LETTERS)
translation = ''
text = self.Ent1.get()
text = self.Ent3.get()
text = re.sub('[^A-Za-z]+', '', text.lower())
for character in text:
if character in self.LETTERS:
sayı = self.LETTERS.find(character)
sayı = (sayı + key) % length
translation += self.LETTERS[sayı]
else:
translation += character
self.RESULT.delete(0, END)
self.RESULT.insert(0, translation)
def Decrypt(self):
key = int(self.Ent2.get())
length = len(self.LETTERS)
translation = ''
text = self.RESULT.get()
text = re.sub('[^A-Za-z]+', '', text.lower())
for character in text:
if character in self.LETTERS:
sayı = self.LETTERS.find(character)
sayı = (sayı - key) % length
translation += self.LETTERS[sayı]
else:
translation += character
self.RESULT.delete(0, END)
self.RESULT.insert(0, translation)
if __name__ == "__main__":
root = Tk()
root.title("Caesar")
root.geometry("580x280+70+70")
Caesar(root).pack(side="top", fill="both")
root.mainloop()