Python Error: [WinError 6] Das Handle ist ungültig fixen?

Moin seit kurzem funktioniert

sys.exit()

bei mir in Python nicht mehr.

Das Programm schließt sich aber es erscheint eine Fehlermeldung

FELHER:

Cancelling an overlapped future failed

future: <_OverlappedFuture pending overlapped=<pending, 0x2ea7a20> cb=[BaseProactorEventLoop._loop_self_reading()]>

Traceback (most recent call last):

 File "C:\Users\Anwender\AppData\Local\Programs\Python\Python38-32\lib\asyncio\runners.py", line 43, in run

  return loop.run_until_complete(main)

 File "C:\Users\Anwender\AppData\Local\Programs\Python\Python38-32\lib\asyncio\base_events.py", line 603, in run_until_complete

  self.run_forever()

 File "C:\Users\Anwender\AppData\Local\Programs\Python\Python38-32\lib\asyncio\windows_events.py", line 316, in run_forever

  super().run_forever()

 File "C:\Users\Anwender\AppData\Local\Programs\Python\Python38-32\lib\asyncio\base_events.py", line 570, in run_forever

  self._run_once()

 File "C:\Users\Anwender\AppData\Local\Programs\Python\Python38-32\lib\asyncio\base_events.py", line 1859, in _run_once

  handle._run()

 File "C:\Users\Anwender\AppData\Local\Programs\Python\Python38-32\lib\asyncio\events.py", line 81, in _run

  self._context.run(self._callback, *self._args)

 File "D:/Ruben/Projects/Python/Testing/main.py", line 15, in auswahlfenster

  await loginchecker()

 File "D:/Ruben/Projects/Python/Testing/main.py", line 36, in loginchecker

  raise SystemExit

SystemExit

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

 File "C:\Users\Anwender\AppData\Local\Programs\Python\Python38-32\lib\asyncio\windows_events.py", line 66, in _cancel_overlapped

  self._ov.cancel()

OSError: [WinError 6] Das Handle ist ungültig

DEF LOGINCHECKER:

Bild zum Beitrag
Computer, programmieren, Informatik, Python
Python | was ist hier falsch?
def open_file():

   my_text.delete("1.0", END)

   #get filename
   text_file = filedialog.askopenfilename(initialdir="C:/", title="Open File", filetyßes=(("Text Files", "*.txt")))

Ich habe ein Tutorial auf YouTube nachgemacht um einen Text Editor zu erstellen.

Ich bin momentan bei der Funktion um Datein zu öffnen.

Also funktioniert bisher, außer es kommt beim öffnen immer ein Fehler der aber laut dem Py Terminal diese Zeile ist

text_file = filedialog.askopenfilename(initialdir="C:/", title="Open File", filetypes=(("Text Files", "*.txt")))

Kann mir jemand sagen was an dieser Zeile falsch ist?

Hier mal den Console Log

Exception in Tkinter callback
Traceback (most recent call last):

File "C:\xyz\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)

  File "C:\xyz\editor.py", line 16, in open_file
    text_file = filedialog.askopenfilename(initialdir="C:/Benutzer", title="Open File", filetypes=(("Text Files", "*.txt")))

)))
  File "C:\xyz\AppData\Local\Programs\Python\Python37\lib\tkinter\filedialog.py", line 375, in askopenfilename
    return Open(**options).show()
  File "C:\xyz\AppData\Local\Programs\Python\Python37\lib\tkinter\commondialog.py", line 43, in show
    s = w.tk.call(self.command, *w._options(self.options))
_tkinter.TclError: bad file type "*.txt", should be "typeName {extension ?extensions ...?} ?{macType ?macTypes ...?}?"


Computer, programmieren, Informatik, Python
Wie ist dieser verbesserte Python Code zu Palindromen?

Verbesserter Code mit Hilfe der Antwort von alfredo153

#!/bin/python3
#Palindrome-Woerter in Textdatei erkennen
import string

#Funktion zum Erkennen von Palindromen
def check_palindrome(word):
    reverse = ''
    removable = string.punctuation + string.whitespace + string.digits
    for c in removable: #Sonderzeichen entfernen
        word = word.replace(c, '')
    if word in string.punctuation or word in string.whitespace: #Sonderzeichen abfangen
        return False
    for c in word[::-1]: #Wort rueckwaerts zusammen basteln
        reverse = reverse + c
    if reverse.lower() == word.lower(): #Rueckwaerts-Wort mit vorwaerts-Wort vergleichen
        return True
    else:
        return False

#Den Benutzer eine Textdatei oeffnen lassen
file = input('Path to file: ')
palindrome = []

try:
    with open(file, 'r') as f:
        lines = f.readlines()
except FileNotFoundError:
    print('File not found!')
    exit(0)

#Einzelne Woerter im Text der Funktion check_palindrome uebergeben
for line in lines:
    line = line.split(' ')
    for word in line:
        if check_palindrome(word):
            palindrome.append(word)
        else:
            continue

#Ergebnis anzeigen
print(len(palindrome), ' found!\n')
for i in range(len(palindrome)):
    print(palindrome[i].replace('\n', '')) #\n in Wort entfernen, da sonst zu viele Leerzeichen bei Output
Computer, programmieren, Informatik, Python
Verbesserungsvorschläge für mein Python Skript: Polindrome finden?

Hey,

ich habe heute ein kleines Python Skript geschrieben, um Polindrome in einer Textdatei zu erkennen. Polindrome sind Wörter, die rückwärts geschrieben genau den gleichen Sinn ergeben wie vorwärts geschrieben.

#!/bin/python3
#Polindrome-Woerter in Textdatei erkennen
import string

#Funktion zum Erkennen von Polindromen
def check_polindrome(word):
    reverse = ''
    removable = ['\n', '\t', '\r']
    for c in removable: # Zeug entfernen
        word = word.replace(c, '')
    for c in string.punctuation: #Sonderzeichen entfernen
        word = word.replace(c, '')
    for c in string.whitespace: #Leerzeichen entfernen, da sonst falsche Ergebnisse entstehen
        word = word.replace(c, '')
    if word in string.punctuation or word in string.whitespace: #Leer- und Sonderzeichen abfangen
        return False
    if word.isdigit() == True: #Zahlen abfangen, da z.B. 121 rueckwaerts auch 121 ergibt
        return False
    for i in range(len(word)-1, 0-1, -1): #Wort rueckwaerts zusammen basteln
        reverse = reverse + word[i]
    if reverse.lower() == word.lower(): #Rueckwaerts-Wort mit vorwaerts-Wort vergleichen
        return True
    else:
        return False

#Den Benutzer eine Textdatei oeffnen lassen
file = input('Path to file: ')
polindrome = []

try:
    with open(file, 'r') as f:
        lines = f.readlines()
except FileNotFoundError:
    print('File not found!')
    exit(0)

#Einzelne Woerter im Text der Funktion check_polindrome uebergeben
for i in range(0, len(lines)):
    lines[i] = lines[i].split(' ')
    for word in lines[i]:
        if check_polindrome(word) == True:
            polindrome.append(word)
        else:
            continue

#Ergebnis anzeigen
print(len(polindrome), ' found!\n')
for i in range(len(polindrome)):
    print(polindrome[i].replace('\n', '')) #\n in Wort entfernen, da sonst zu viele Leerzeichen bei Output

Die Projektidee habe ich von: https://www.gutefrage.net/frage/python-projekt-ideen#answer-357880884

Wie man rückwärts über eine Zeichenkette rotiert, habe ich von: https://stackoverflow.com/questions/7961499/best-way-to-loop-over-a-python-string-backwards

  • Hat jemand Verbesserungsvorschläge für meinen Code?
  • Ein kleines Feedback bitte
Computer, programmieren, Informatik, Python

Meistgelesene Beiträge zum Thema Python