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!

...zur Frage

Ändere deine beiden Funktionen:

def encrypt():
    filename=textExample.get(1.0, tk.END+"-1c")
    # ... usw.

bzw.:

def decrypt():
    filename = textExample.get(1.0, tk.END+"-1c")
    # ...
    key = open(filename + ".lqk", "rb").read()
    # ... usw.

und entferne jeweils die beiden letzten Zeilen:

    filename= ....
# und
    encrypt(...)
# bzw.
    decrypt(...)
...zur Antwort

Nomad von 1993

https://en.wikipedia.org/wiki/Nomad_(video_game)

Frontier: Elite II von 1993, der Nachfolger Frontier: First Encounters kam 1995 und der Vorgänger Elite kam 1984 raus.

https://en.wikipedia.org/wiki/Frontier:_Elite_II

...zur Antwort

Ruanda wird von der Schweiz im Rahmen der Entwicklungszusammenarbeit seit Jahrzehnten (mit Unterbrechungen) unterstützt. Unter anderem wurde mit Hilfe der Schweiz die Stromversorgung des Landes verbessert.

Deshalb, so meine Vermutung, verwendet Ruanda dieselben Steckdosen (Typ C,J) wie die Schweiz.

https://hls-dhs-dss.ch/de/articles/003461/2012-05-25/

...zur Antwort

Berechne das Ganze doch einfach mal ohne Python und du siehst, dein Ergebnis ist um 1 zu hoch:

1+2+4+8+16+32+... = 16777215 ct
oder
2^24 - 1 = 16777215 ct

Zusätzlich würde dein Code ein falsches Ergebnis liefern wenn mehr als 1 Pferd beschlagen wird, es sei denn der Hufschmied fängt nicht wieder mit 1ct für den ersten Nagel des zweiten Pferdes an (und bei 0 Pferden würde er 1ct verlangen).

Weils mir gerade erst auffällt, du hast einen kleinen Schreibfehler in deiner Frage:

4 Hufe mit je 6 benötigten Nägeln. Insgesamt benötigt er also 64 Nägel für das Pferd

Insgesamt sinds 24 Nägel fürs Pferd (4*6).

...zur Antwort

Zuerst wandelst du deinen Binärcode zu Ascii um, danach entschlüsselst du mit rot13 und das Ergebnis nochmal mit base64.

Ascii:

L3WgozjhpUpip29aM2RinTSmY21ipzHgMUWcpP90nTShYJMfo3OjLF9gLKEyYaOhMjb=

rot13:

Y3JtbmwucHcvc29nZ2EvaGFzL21vcmUtZHJpcC90aGFuLWZsb3BwYS9tYXRlLnBuZwo=

base64:

crmnl.pw/sogga/has/more-drip/than-floppa/mate.png
...zur Antwort
Leider gibt es keine Druckertreiber von Epson selbst ...

http://download.ebz.epson.net/dsc/search/01/search/?OSC=LX&productName=ET-M2120

Eigentlich sollte der Drucker auf allen Distributionen gleich gut funktionieren, vorausgesetzt du nutzt den aktuellen, für dein Gerät, von Epson bereitgestellten Treiber.

Auf Ubuntuusers findest du zudem eine ausführliche Anleitung (funktioniert unter anderen Distributionen ähnlich/gleich):

https://wiki.ubuntuusers.de/Epson-Drucker_und_-Multifunktionsgeräte/

...zur Antwort

1. Nummer 5

Die schwarzen Halbkreise drehen sich im Uhrzeigersinn. Der schwarze Punkt wechselt zwischen den Bildern. Bei einem Punkt wird ein weiterer schwarzer Halbkreis hinzugefügt, fällt der Punkt weg wird der weiße Halbkreis entfernt.

2. Nummer 3

Die Striche drehen sich um 90°

3. Nummer 6

Je Reihe ist das dritte Bild eine Kombination aus den beiden linken Bildern. Treffen zwei gleiche aufeinander (Strich oder Punkte) heben sich beide auf, trifft Strich auf Punkte wird daraus Strich, trifft Strich oder Punkte auf nichts wird daraus Strich bzw. Punkte.

4. Nummer 4

Das dritte Bild ist wieder eine Kombination der beiden linken Bilder. Jeder Punkt hebt den Punkt mit derselben Farbe oberhalb oder unterhalb seiner Position und sich selbst auf.

...zur Antwort

Das kann die Seite auch direkt für dich erledigen:

curl wttr.in/?0

hier findest du weitere Optionen:

curl wttr.in/:help
...zur Antwort

Die Entwickler empfehlen Tor nicht aus den offiziellen Paketquellen von Ubuntu zu installieren.

Wenn du den Tor Browser möchtest solltest du ihn direkt von der Webseite herunterladen:

https://www.torproject.org/download/

Anleitung:

https://tb-manual.torproject.org/de/installation/

Falls du Tor willst kannst du die Paketquelle der Hersteller verwenden.

https://wiki.ubuntuusers.de/Tor/Installation/#Fremdquelle

...zur Antwort
Ich mache es über rc.local und über ein SH-Skript

Wie sieht dein Script bzw. dein Eintrag in rc.local aus?

In rc.local sollte am Ende eines Befehls immer ein & besonders wenn der Befehl nicht beendet wird, z.B.:

/pfad/script1.sh &
/pfad/script2.sh &
...zur Antwort
abfragen kann ob ein screen läuft

Du kannst mit -ls oder -list alle screen Sessions ausgeben lassen:

screen -ls
jede Sekunde überprüft ob nur ein Screen läuft

Du könntest dir ein systemd Script (z.B. wenn das Script automatisch beim Booten gestartet werden soll) mit Timer schreiben, oder du benutzt while mit sleep:

while [ true ]
        do
        sleep 1
        # mach was
done
wenn mehr als 2 laufen er einen beenden soll

Überprüfe wieviele Sessions screen -ls ausgibt und sende einer Session einen kill Befehl bei mehr als zwei.

Beispiel - beende alle bis auf die ältesten Sessions, solange es mehr als zwei gibt (Bei 4 werden 2 beendet):

while [ `screen -ls | wc -l` -gt 4 ]
        do
        screen -S `screen -ls | awk 'NR==2 {print $1}'` -X kill
done

Anderes Beispiel - beende nur die neueste Session, wenn es mehr als zwei gibt (Bei 4 wird eine beendet):

if [ `screen -ls | wc -l` -gt 4 ]
        then
        screen -S `screen -ls | awk 'NR==2 {print $1}'` -X kill
fi

Weitere Infos kannst du in den jeweiligen manpages nachlesen.

...zur Antwort
fstab wie Festplatte mounten?

Hallo und guten Abend,

ich habe Linux Mint 19.3 Tricia - Cinnamon 4.4.8

Mein Betriebssystem läut auf einer SSD.

Die normalen Daten habe ich auf einem NAS, welches ich erfolgreich so gemountet habe, dass wenn ich z.B: auf /home/johannes/Bilder klicke, dass ich dann zu meinem NAS/Ordner/blabla/Bilder geleitet werde

Ich habe eine weitere HDD im PC-Gehäuse, auf der ich gerne die Ordner "Downloads" und "Projekte" speichern würde. - Das ist ja soweit kein Problem.

Jedoch möchte ich nicht auf diese Festplatte gehen, sondern automatisch wie bei meinem NAS dorthin geleitet werden, wenn ich auf den Ordner "Downloads" unter /home/johannes/Downloads klicke

Ich habe es mit fstab versucht, doch ich bekomme nur Fehler.

Ein Teil meiner fstab, dabei die obersten beiden Zeilen für's NAS und die unteren für mein Problem:

//192.168.178.1/NAS1/Johannes/Bilder  /home/johannes/Bilder  cifs vers=1.0,_netdev,username=Johannes,password=RgYhXh47,uid=100$

//192.168.178.1/NAS1/Johannes/Videos  /home/johannes/Videos  cifs vers=1.0,_netdev,username=Johannes,password=RgYhXh47,uid=1000,gi$

/media/johannes/4F53C574216AE246/Downloads/ /home/johannes/Downloads ntfs defaults/   0 2

/media/johannes/4F53C574216AE246/Projekte/ /home/johannes/Projekte ntfs defaults/    0 2

nach sudo mount -a bekomme ich die Fehler:

Error opening '/media/johannes/4F53C574216AE246/Downloads': Ist ein Verzeichnis
Failed to mount '/media/johannes/4F53C574216AE246/Downloads': Ist ein Verzeichnis
Error opening '/media/johannes/4F53C574216AE246/Projekte': Ist ein Verzeichnis
Failed to mount '/media/johannes/4F53C574216AE246/Projekte': Ist ein Verzeichnis

Ich kann aber im Internet über diesen Fehler weder auf Deutsch noch auf englisch etwas finden, was mich ziemlich irritiert.

Kann mir von euch jemand helfen?!

Vielen Dank auf jeden Fall schon mal für eure Mühe.

Wenn ihr was nicht kapiert, fragt einfach nach, wäre echt dringend das Problem endlich mal gelöst zu bekommen.

...zur Frage

Du mußt ein Gerät und kein Verzeichnis angeben.

Beispiel:

/dev/sda1 /home/johannes/Projekte ntfs defaults    0 2

sda1 dabei an deine Partition anpassen.

Du kannst auch UUID benutzen, mehr Infos findest du hier:

man fstab
...zur Antwort
In Deutschland waren Stan Laurel und Oliver Hardy einzeln schon seit 1925 bekannt, da sie in zahlreichen Kurzfilmen als Nebendarsteller auftraten, so beispielsweise Hardy in Filmen von Larry Semon. Ihr erster Film als Duo kam 1928 in die Kinos, und selbst in der Zeit des Nationalsozialismus waren sie in den Kinos als Dick und Doof zu sehen, bis die Nationalsozialisten 1938 ein allgemeines Importverbot amerikanischer Filme verhängten. Nach dem Zweiten Weltkrieg wurden ihre Filme wieder gezeigt, und Laurel und Hardy wurden, nicht zuletzt dank der stetig zunehmenden Verbreitung des Fernsehens, im Laufe der Zeit immer populärer.

https://de.wikipedia.org/wiki/Laurel_und_Hardy#Laurel_und_Hardy_in_Deutschland

...zur Antwort
Die altertümliche Genitivform ist nur in diesem einen stehenden Begriff im klassischen Latein und darüber hinaus erhalten geblieben.

https://de.wikipedia.org/wiki/Pater_familias

...zur Antwort

"file" kann feststellen um welchen Dateityp es sich handelt.

z.B.:

file [Dateiname]

Mehr Infos dazu findest du in der Manpage (man file bzw. magic).

...zur Antwort

Mit z.B. Buildroot kannst du dir dein eigenes angepasstes Linux-Betriebssystem zusammenstellen.

https://www.buildroot.org

Wenn du es gerne noch individueller haben möchtest, dann schau dir LFS (Linux from Scratch) an.

http://www.linuxfromscratch.org

...zur Antwort

Sowas kannst du entweder "fertig" kaufen, z.B.:

https://www.amazon.de/gp/product/B008L0IYBI/

(lt. Rezensionen funktioniert dieses Produkt mit Siedle Anlagen, obs auch mit deiner funktioniert kann ich nicht beantworten)

oder (evtl. günstiger) selbst basteln.

...zur Antwort