Öffnen und Lesen einer Datei mit askopenfilename

8

Ich habe den folgenden Code, wo ich versuche, dem Benutzer zu erlauben, eine Textdatei zu öffnen, und wenn der Benutzer es ausgewählt hat, möchte ich, dass der Code es liest (das ist kein fertiger Block von Code, nur um zu zeigen, was ich suche).

Ich habe jedoch Schwierigkeiten, tkFileDialog.askopenfilename zu verwenden und 'mode =' rb '' hinzuzufügen oder den Code wie unten zu verwenden und gelesen zu verwenden, wo es einen Fehler erzeugt.

Weiß jemand, wie ich das arrangieren kann, weil ich nicht Tkinter.'Modul 'für jedes Element wie Menü und Listbox eingeben möchte. Anfänger bis Tkinter und ein bisschen verwirrt! Danke für die Hilfe!

%Vor%

Offensichtlich ist der Fehler, den ich hier bekomme:

%Vor%

Ich verstehe nicht, wie man askopen benutzt und kann auch die Datei lesen, die ich öffne.

    
user2063 12.06.2012, 08:36
quelle

3 Antworten

6

askopenfilename gibt nur einen Dateinamen zurück, was Sie wollten, war askopenfile , das einen mode -Parameter akzeptiert und die Datei für Sie öffnet.

    
alexisdm 12.06.2012, 08:57
quelle
7

Der filename in Ihrem Beispielcode ist genau das - eine Zeichenfolge, die den Namen der Datei angibt, die Sie öffnen möchten. Sie müssen das an die Methode open() übergeben, um eine Dateikennung für den Namen zurückzugeben. Sie können dann aus dem Dateihandle lesen.

Hier ist ein kurzer und schmutziger Code, der direkt im Python-Interpreter ausgeführt wird. (Sie können dies auch in einem Skript ausführen, aber ich mag REPL Schnittstellen zum schnellen Ausprobieren. Vielleicht gefällt es Ihnen auch.)

%Vor%

Beachten Sie insbesondere, dass es beim Lesen der Datei keine Tkinter-spezifische Angabe gibt - das Dialogfeld enthält nur einen Dateinamen.

    
sarnold 12.06.2012 08:55
quelle
0

Ihr Fehler ist der Name Ihrer Funktion. Ich habe einfach def open() für def open1() geändert und es funktioniert.

%Vor%     
Mesbah Ahmed 07.06.2016 08:56
quelle

Tags und Links