Text aus Datei laden??

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
pantoffeltierchen
User
Beiträge: 16
Registriert: Donnerstag 30. November 2006, 17:48
Wohnort: Berlin
Kontaktdaten:

Hi,

ich habe ein kleines Programm, und das soll mittels Button aus einer Datei (.txt, .doc.....) ein Text importieren. und dann ins Entry Fenster laden.

Danke.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Eine Datei öffnen kannst du mit file(), das zurückgelieferte Objekt hat eine .read()-Funktion, die dir den Inhalt der Datei liefert.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
pantoffeltierchen
User
Beiträge: 16
Registriert: Donnerstag 30. November 2006, 17:48
Wohnort: Berlin
Kontaktdaten:

ich dachte das man das grafisch lösen könnte?
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Kann man, dafür muss du aber eine GUI-Library nutzen, z.B. wxWidgets (wxPython), GTK oder Tcl/Tk (Tkinter).

Siehe auch die entsprechenden Foren hier.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

pantoffeltierchen hat geschrieben:ich dachte das man das grafisch lösen könnte?
Wie willst du das lesen von Dateien denn grafisch lösen? Du kannst den Inhalt der Dateien in einem grafischen Fenster anzeigen, in einem von dir gewählten Toolkit, aber so etwas wie "Dateien grafisch öffnen" gibts schlichtweg nicht - macht ja auch keinen Sinn.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Jepp, Leonidas hat vollkommen recht! Das einzige was du machen kannst ist z.B. über eine Dataiauswahlbox die Datei anzuklicken. Aber öffnen muss du das schon so wie Leonidas das meinte.

Hier ein Auszug aus einem (noch nicht fertigen) Programm von mir, das für die GUI wxPython nutzt.

Code: Alles auswählen

    def OpenFile(self, event):
        # File-Dialog erzeugen. 
        dlg = wx.FileDialog(
            self, 
            message = "Datei öffnen", 
            defaultDir = os.getcwd(), 
            defaultFile = "", 
            wildcard = "Python source (*.py;*.pyw)|*.py;*.pyw",
            style = wx.OPEN | wx.CHANGE_DIR
        )
        # Wenn Datei ausgewählt und [OK] gedrückt...
        if dlg.ShowModal() == wx.ID_OK:
            # ...dann den Pfad zur ersten ausgewählte Datei ([0]) holen...
            path = dlg.GetPaths()[0]
        # Wenn nicht mit [OK] bestätigt dann beenden.
        else:
            return
        # Dialog schließen.
        dlg.Destroy()
        
                
        # Inhalt der Datei laden und Datei danach schließen.
        f = open(path, "r")
        src = f.readlines()
        f.close
`path` enthält nach der Auswahl der Datei, in dem Dateiauswahldialog, den Path + namen der Datei die geöffnet werden soll. öffnen muss man das dann nachher mit `file()` bzw. `open()`...

Sorry, Kurz OT: `open()` vs. `file()`. Eigentlich egal oder?

lg
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

lunar hat geschrieben:Also ich finde diesen Hinweis trotz seiner Korrektheit etwas pingelig ;)

Für die Diskussion um den Namen ist es doch irrelevant, ob das nun ein Konstruktor oder eine Datei ist...
Im Prinzip hast du in beiden Punkten recht. Hier wurde jedoch (unabsichtlich) eine Falschaussage gemacht, und besonders bei Anfängern finde ich es hilfreich, exakt zu sein, da es schwieriger ist, einmal Erlerntes wieder zu korrigieren.

Und da das hier eine Anfängerfrage war, finde ich es wichtig, solche Aussagen sofort zu korrigieren, bevor sie sich irgendwo im Hinterköpfchen festsetzen.

Edit (Leonidas): In den Thread file() vs. open() gesplittet. Und prompt wieder einen Post übersehen. Sorry, Joghurt, war keine Absicht, aber das kann ich nicht mehr so einfach reparieren ohne phpBB zu zerlegen :(
Antworten