Python 3 – die besten Beiträge

Datei finden Fehler?

Hallo,

ich mache ein Programm in Python (mit Turtle), welches erkennt wo die ISS ist. Aber (obwohl es in demselben Ordner ist) findet es die Datei 'map.gif' nicht. Kann mir da jemand helfen?

Danke im voraus!

Code:

import json
import turtle
import urllib.request


url = 'http://api.open-notify.org/astros.json'
antwort = urllib.request.urlopen(url)
ergebnis = json.loads(antwort.read())


print('Personen im Weltall: ', ergebnis['number'])


personen = ergebnis['people']
#print(personen)



for p in personen:
    print(p['name'], 'in', p['craft'])


url = 'http://api.open-notify.org/iss-now.json'
antwort = urllib.request.urlopen(url)
ergebnis = json.loads(antwort.read())


standort = ergebnis['iss_position']
breitengrad = float(standort['latitude'])
längengrad = float(standort['longitude'])
print('Breitengrad: ', breitengrad)
print('Längengrad: ', längengrad)


bildschirm = turtle.Screen()
bildschirm.bgpic("map.gif")

Fehlermeldung:

File "/home/pi/Dokumente/Python programme/Standart/Wo ist die ISS?", line 29, in <module>
    bildschirm.bgpic("map.gif")
  File "/usr/lib/python3.7/turtle.py", line 1481, in bgpic
    self._bgpics[picname] = self._image(picname)
  File "/usr/lib/python3.7/turtle.py", line 479, in _image
    return TK.PhotoImage(file=filename)
  File "/usr/lib/python3.7/tkinter/__init__.py", line 3545, in __init__
    Image.__init__(self, 'photo', name, cnf, master, **kw)
  File "/usr/lib/python3.7/tkinter/__init__.py", line 3501, in __init__
    self.tk.call(('image', 'create', imgtype, name,) + options)
_tkinter.TclError: couldn't open "map.gif": no such file or directory
Python, Python 3, Tkinter

Python Tkinter clear geht nicht?

```File "C:\Users\Marek\energyECO\Gewinnspiel\clearEntry.py", line 9, in register_user

   vorname_entry.delete(0, END)

AttributeError: 'NoneType' object has no attribute 'delete'```

Das ist der Error

Und das der Code:

from tkinter import *
import csv

def register_user():
    vorname_info = vorname.get()
    nachname_info = nachname.get()
    email_info = email.get()

    # open the file in the write mode
    with open('Benutzernamen.csv', 'a', newline='', encoding='UTF8') as f:
        # create the csv writer
        writer = csv.writer(f, delimiter =';')
        # write a row to the csv file
        row=[vorname_info, nachname_info, email_info]
        writer.writerow(row)
        # close the file
        f.close()

    #vorname_entry.delete(0, END)
    #nachname_entry.delete(-0, END)

    Label(screen1, text="energyECO")

    vorname_entry.delete(0, 'end')
    nachname_entry.delete(0, 'end')
    email_entry.delete(0, 'end')


def register():

    global screen1
    screen1 = Toplevel(screen)
    screen1.title("Gewinnspiel")
    screen1.geometry("550x500")

    global vorname
    global nachname
    global email

    vorname = StringVar()
    nachname = StringVar()
    email = StringVar()

    global vorname_entry
    global nachname_entry
    global email_entry

    Label(screen1, text="Bitte tragen sie ihren Vor- und Nachnamen und außerdem ihre E-Mail ein", font=('Arial 15')).pack()
    Label(screen1, text=" ").pack()
    Label(screen1, text="Vorname * ", font=('Arial 12')).pack()
    vorname_entry = Entry(screen1,width=50, font=('Arial 20'), textvariable=vorname).pack()
    Label(screen1,text=" ").pack()
    Label(screen1, text="Nachname * ", font=('Arial 12')).pack()
    nachnamne_entry = Entry(screen1,width=50, font=('Arial 20'), textvariable=nachname).pack()
    Label(screen1,text=" ").pack()
    Label(screen1, text="E-Mail * ", font=('Arial 12')).pack()
    email_entry = Entry(screen1,width=50, font=('Arial 20'), textvariable=email).pack()
    Label(screen1,text=" ").pack()
    Label(screen1,text=" ").pack()
    Label(screen1,text=" ").pack()
    Label(screen1, text="Mit der Teilnahme am Gewinnspiel und der Eingabe meine Daten erkläre ich mich bereit, den E-Mail Newsletter von energyECO monatlich zu erhalten.", font=("Arial 10")).pack()
    Label(screen1,text=" ").pack()
    Button(screen1, text="Daten senden", font=('Arial 20'), width="15", height="2", command=register_user).pack()


def close():
    print("Closed!")
    screen.destroy()
    screen1.destroy()

def main_screen():
    global screen
    screen = Tk()
    screen.geometry("300x250")
    screen.title("energyECO")

    Label(text="energyECO", bg="gray", width="300", height="2", font=("Calibri", 13)).pack()
    Label(text=" ").pack()
    Button(text="Gewinnspiel", height="2", width="30", command=register).pack()
    Label(text=" ").pack()
    Label(text=" ").pack()
    Label(text=" ").pack()
    Button(text="Close", command=close).pack()
    Label(text=" ").pack()

    screen.mainloop()

main_screen()
Python 3, Tkinter

Python nur bestimmte dateien in zip archiv speichern?

Hallo Leute,

es geht um folgendes. Eine Funktion (siehe unten) soll ein Zip Archiv erstellen. Dieses soll alle Dateien aus dem verzeichnis /main/content/data beinhalten. Danach wird das ZIP verschlüsselt. Das Ver-, bzw. entschlüsseln funktioniert wunderbar. Nur finde ich, wenn ich das Zip Archiv dann wieder entschlüssele plötzlich nicht die Dateien aus /main/content/data - sondern ebenfalls die Ordner main, content und data. Also die werden mit in das Archiv gepackt. Das sollen Sie aber nicht. Und ich kann meinen Fehler beim besten Willen nicht finden...

Währe nett, wenn mir mal kurz jemand helfen könnte!

Danke im Voraus!

Hier mein Code:

def createEncryptedZIP(compress = zipfile.ZIP_DEFLATED):
    global zip_path
    global zip_name
    global original_path
    
    folder ='main\\content\\data'
    zip_name = simpledialog.askstring(title="Enter Filename", prompt="Enter file name for the new filecontainer")
    zip_path=os.path.join(os.path.dirname(__file__), 'main\\content\\secdrives\\')+zip_name+".secdrive"
    original_path=zip_path
    with zipfile.ZipFile(zip_path, 'w', compress) as target:
        for (root, dirs, files) in os.walk(folder):
            for file in files:
                add = os.path.join(root, file)
                target.write(add)
    to_encrypt = open(zip_path, "rb").read()
    size = len(to_encrypt)
    key = open(keyfile, "rb").read()
    encrypted = bytes(a ^ b for (a, b) in zip(to_encrypt, key))
    with open(zip_path, "wb") as encrypted_out:
        encrypted_out.write(encrypted)
    filelist = glob.glob(os.path.join('main\content\data', "*"))
    for f in filelist:
        os.remove(f)
    print(showinfo("New filecontainer created successfully", "You created a new filecontainer:\n\n"+zip_path))
    label_local.configure(text="Local File: "+zip_path)

Datei wieder entschlüsseln:

def decrypt_direct():
    file = open(zip_path, "rb").read()
    key = open(keyfile, "rb").read()
    decrypted = bytes(a ^ b for (a, b) in zip(file, key))
    with open(zip_path, "wb") as decrypted_out:
        decrypted_out.write(decrypted)
    os.rename(original_path, original_path+".zip")
    with zipfile.ZipFile(zip_path+".zip",'r') as source:
        source.extractall(decrpytion_path)
    subprocess.call(["subst y: " +'"'+os.path.join(os.path.dirname(__file__), 'main\\content\\data')+'"'], shell=True)
    print(showinfo("Decryption Successfull", "Decryption of \n\n "+zip_path+" \n\nSuccessfull!"))


Ganz am Anfang vom File:

decrpytion_path='main\\content\\data'
Python, Python 3

Meistgelesene Beiträge zum Thema Python 3