Python - tkinter text eingabe in variable?

Hallo,

ich habe folgendes programmiert:

import tkinter as tk
import os


root = tk.Tk()
root.geometry("400x240")


def encrypt(filename):
    to_encrypt = open(filename, "rb").read()
    size = len(to_encrypt)
    key = os.urandom(size)
    with open(filename + ".lqk", "wb") as key_out:
        key_out.write(key)
    encrypted = bytes(a ^ b for (a, b) in zip(to_encrypt, key))
    with open(filename, "wb") as encrypted_out:
        encrypted_out.write(encrypted)  
    filename = textExample.get(1.0, tk.END+"-1c")
    encrypt(filename)




def decrypt(filename, key):
    file = open(filename, "rb").read()
    key = open(key, "rb").read()
    decrypted = bytes(a ^ b for (a, b) in zip(file, key))
    with open(filename, "wb") as decrypted_out:
        decrypted_out.write(decrypted)
    fileTest = filename + ".lqk"
    try:
        os.remove(fileTest)
    except OSError as e:
        print(e)
    else:
        print("Datei erfolgreich gelöscht!")
    filename = textExample.get(1.0, tk.END+"-1c")
    decrypt(filename, filename + ".lqk")
    
    


textExample=tk.Text(root, height=10)
textExample.pack()
btnEncrypt=tk.Button(root, height=1, width=10, text="Encrypt", 
                    command=encrypt)
btnDecrypt=tk.Button(root, height=1, width=10, text="Decrypt", 
                    command=decrypt)


btnEncrypt.pack()
btnDecrypt.pack()


root.mainloop()

Nur leider funktioniert dies nicht. In der Debugging Console bekomme ich folgende Fehlermeldung:

Bei der Encrypt Funktion:

PS C:\Users\elias\Desktop\Python>  c:; cd 'c:\Users\elias\Desktop\Python'; & 'C:\Users\elias\AppData\Local\Programs\Python\Python310\python.exe' 'c:\Users\elias\.vscode\extensions\ms-python.python-2021.12.1559732655\pythonFiles\lib\python\debugpy\launcher' '52518' '--' 'c:\Users\elias\Desktop\Python\main.py'
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\elias\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 1921, in __call__
    return self.func(*args)
TypeError: encrypt() missing 1 required positional argument: 'filename'


Decrypt Funktion:

Traceback (most recent call last):
  File "C:\Users\elias\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 1921, in __call__
    return self.func(*args)
TypeError: decrypt() missing 2 required positional arguments: 'filename' and 'key'      


Wie kann ich das Problem jetzt lösen?

Danke im Vorraus!

VG!

programmieren, Python, Python 3, Tkinter
Mit Handy fake Wlan?

Hi,

In der Schule haben wir momentan das Thema Sicherheit im Internet. Nach den Sommerferien sollen wir etwas demonstrieren, was darstellt, wie groß die Gefahr im Netz ist.

Als Idee habe ich, dass ich mit dem Handy alleine ein Fake Wlan erstelle mit einer "Im Wlan anmelden" Seite. Die dürfte jedem bekannt sein... Sehr viele Menschen nutzen immer die gleichen Passwörter, weshalb es einfach ein Feld gibt wo man eine Email eingeben muss und eins für ein Passwort. Die Daten werden dann einfach gespeichert und schon werden viele in meine "Falle" getappt sein. Die Daten werde ich selbstverständlich danach löschen. Ich möchte keinen Stress mit denen. Ich halte diese Idee aber für recht sinnvoll für unser Thema.

Falls jemand eine bessere Idee in diese Richtung hat, gerne melden.

Mein Wissen:

Es gibt sowas ähnliches namens Fake access Point nur das das dann halt alles angreift, was man am Handy im Wlan macht. Bei mir soll jedoch kein Wlan freigegeben werden, da ich dafür einen wlan Stick vermutlich brauche.

Also es soll kein Wlan freigegeben werden. Kann man dann auch eine Nachricht ans Handy schicken, wie z.B. du wurden reingelegt?

Das war mit meinem Wissen.

Falls ich es brauche: Ich habe Kenntnisse in Python und ein sehr wenig in Thermux...

Konstruktives Feedback nehme ich sehr gerne an. Wenn ihr die Idee für Schwachsinn haltet lasst es mich gerne mit ner Begründung wissen.

Danke im Voraus

Internet, WLAN, Hacking, Python
Wie erzeugt man Variablen automatisch durch das Programm in Python?

Hallo liebe Programmierer/innen,

ich möchte mich auf jeden Fall noch mal für die Hilfe letztens bedanken, da mir das sehr geholfen hat. Nun ist aber mein Problem, dass ich nicht herausfinden kann, wie man Variablen durch das Programm erzeugt. Ich habe zwar auf Google und YouTube gesucht, aber alles, was ich finden konnte, war ein Forum, wo es zwar genau darum geht, aber wo die Leute schrieben, ich zitiere: ,,Ist wahrscheinlich eine Frage die jeder für sich beantworten muss, aber ich finde solche "Lösungen" *sollten* verschwiegen werden." oder es wurde geschrieben, dass man das doch einfach mit dem "append()" Befehl in einer Liste machen kann. Eine Liste würde mir nur leider nicht wirklich etwas bringen. Sonst waren die Ergebnisse auch nur, wie man eine Variable erzeugt, also selber hartcodiert. Das kann ich aber schon und das trifft auch irgendwie meine Frage nicht. Nun weiß ich nicht mehr weiter, da das ziemlich essentiell für mich ist und ohne geht nicht, so sehr ich es auch versuche.

Das sind auch so die Momente, wo ich mich selber dafür hasse, dass mein Wissen ungenügend ist.

Da ich natürlich weiß, dass Programmierer ihre Freizeit zum Beantworten solcher Fragen opfern, weiß ich die Hilfe natürlich sehr zu schätzen und ich versuche es auch immer nach Möglichkeit zu vermeiden, da ich gelernt habe, dass man es immer erst selber versuchen soll und nicht sofort um Hilfe bitten sollte, da man so meist nichts dazu lernt, wie man Probleme auf eigene Faust löst, was ja eigentlich einer der Hauptaufgaben beim Programmieren ist.

Nur doof, dass mir einfach solche Basics fehlen. :-(

Ich wäre sehr dankbar, wenn mir da jemand weiterhelfen könnte.

*Gelöst*

Computer, programmieren, Informatik, Python

Meistgelesene Fragen zum Thema Python