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:

Mittwoch 27. Dezember 2006, 15:43

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
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 27. Dezember 2006, 16:04

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 Modvoice
pantoffeltierchen
User
Beiträge: 16
Registriert: Donnerstag 30. November 2006, 17:48
Wohnort: Berlin
Kontaktdaten:

Mittwoch 27. Dezember 2006, 16:20

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

Mittwoch 27. Dezember 2006, 16:41

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
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 27. Dezember 2006, 17:08

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 Modvoice
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Mittwoch 27. Dezember 2006, 17:25

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

Freitag 29. Dezember 2006, 10:11

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