Seite 1 von 3

Python Texteditor

Verfasst: Donnerstag 16. August 2012, 12:29
von Nobuddy
Hallo zusammen,
bin auf der Suche nach einem Texteditor, der in Python geschrieben ist und mit Python3 läuft.
Einen Standard-Texteditor für Python habe ich nicht gefunden.
Wenn es dies doch geben sollte, würde ich mich über eine kurze Info freuen.

Hier http://www.horst-tegtmann.de/index.php/ ... ditor.html habe ich mal beim Googeln, einen in Python geschriebenen Texteditor gefunden. Dieser nutzt aber wx, welches es aber für Python3 noch nicht gibt.

Hoffe, Ihr könnt mir da weiterhelfen, den richtigen Texteditor zu finden.

Grüße Nobuddy

Re: Python Texteditor

Verfasst: Donnerstag 16. August 2012, 13:35
von Sr4l
eric 4 = python 2.X
eric 5 = python 3.X

http://eric-ide.python-projects.org

mfG

Re: Python Texteditor

Verfasst: Donnerstag 16. August 2012, 13:43
von webspider
Nobuddy hat geschrieben:Einen Standard-Texteditor für Python habe ich nicht gefunden.
Ein Standard-Texteditor für Python ist aber etwas ganz anderes als ein in Python3 geschriebener Texteditor :?

Re: Python Texteditor

Verfasst: Donnerstag 16. August 2012, 13:48
von cofi
Hey, Standard & mit Python3 lauffaehig: IDLE.

Was ist denn dein Ziel? Willst du einen Editor, denn du irgendwo einbetten kannst oder willst du ihn zum Python schreiben benutzen?
Rueck mit mehr Nebenbedingungen raus, sonst gibts nur madige Vorschlaege.

Re: Python Texteditor

Verfasst: Donnerstag 16. August 2012, 13:49
von Nobuddy
@Sr4l, Danke werde ich mir anschauen.
webspider hat geschrieben:
Nobuddy hat geschrieben:Einen Standard-Texteditor für Python habe ich nicht gefunden.
Ein Standard-Texteditor für Python ist aber etwas ganz anderes als ein in Python3 geschriebener Texteditor :?
Ok, und gibt es einen Standard-Texteditor für Python?

@cofi, suche einen Editor, den ich in Pythoncode einbinden und Textdateien editieren kann.

Re: Python Texteditor

Verfasst: Donnerstag 16. August 2012, 13:54
von Nobuddy
@Sr4l, suche nur einen Texteditor zum bearbeiten von Textdateien, keine IDE.

Re: Python Texteditor

Verfasst: Donnerstag 16. August 2012, 13:55
von deets
Dann nimm doch einen, der dir gefaellt - warum muss der in Python geschrieben sein? Meiner ist Emacs, und den programmiert man in Lisp...

Re: Python Texteditor

Verfasst: Donnerstag 16. August 2012, 14:22
von Nobuddy
@deets, es ist überhaupt nicht das Problem, daß es keine Texteditoren gäbe ... evtl. habe ich mich etwas ungeschickt ausgedrückt.

Bisher verwende ich kate als Texteditor und verwende diesen auch bisher in meinem Code. Ich kann damit eine Textdatei aus dem Code heraus öffnen, um diese z.B. zu bearbeiten.

Der Grund meines Postes ist, daß kate bei Kubuntu z.B. der Standard-Texteditor ist, unter GNOME und XFCE gibt es wiederum einen anderen Standard-Texteditor.
Mein Code, um eine Textdatei mit kate zu öffnen:

Code: Alles auswählen

process = subprocess.Popen(['kate', 'textdatei.txt'])
Wie der Code aussehen müßte, um immer den richtigen Standard-Texteditor des jeweiligen Betriebssystems zu öffnen ... ?

Ich habe mir gedacht, daß es evtl. bei Python einen eigenen Texteditor von Haus aus gibt!?

Re: Python Texteditor

Verfasst: Donnerstag 16. August 2012, 14:24
von cofi
@deets: Der laesst sich aber nicht gern einbinden ... du koenntest natuerlich dein Python Programm in Emacs einbinden ... :twisted:

@Nobuddy: Das sind keine Nebenbedingungen. Gibt es Einschraenkungen was das Toolkit angeht? Wie soll das Einbinden ablaufen, soll der Editor Kenntnis des Programms haben oder muss er einfach nur etwas editieren?

Im letzteren Fall kann die ganze Kommunikation ueber Dateien ablaufen und du musst ihn gar nicht in den Code einbetten. Also erzaehl etwas ueber das ganze Bild.

Re: Python Texteditor

Verfasst: Donnerstag 16. August 2012, 14:29
von deets
cofi hat geschrieben:@deets: Der laesst sich aber nicht gern einbinden ... du koenntest natuerlich dein Python Programm in Emacs einbinden ... :twisted:
Das ist natuerlich glatt gelogen!

http://aloiroberto.wordpress.com/2010/0 ... and-emacs/

Denn wir wissen ja....

http://xkcd.com/378/

Re: Python Texteditor

Verfasst: Donnerstag 16. August 2012, 14:40
von Nobuddy
cofi hat geschrieben:@Nobuddy: Das sind keine Nebenbedingungen. Gibt es Einschraenkungen was das Toolkit angeht? Wie soll das Einbinden ablaufen, soll der Editor Kenntnis des Programms haben oder muss er einfach nur etwas editieren?

Im letzteren Fall kann die ganze Kommunikation ueber Dateien ablaufen und du musst ihn gar nicht in den Code einbetten. Also erzaehl etwas ueber das ganze Bild.
Beispiel: Ein Python-Programm durchsucht eine Textdatei nach einem bestimmten Begriff. Dieses Programm läuft selbst über die Konsole ab. Die Textdatei ist wie eine Liste mit Spalten aufgebaut.
Die Ergebnisse werden in der Konsole ausgegeben, dort kann ich betreffende Zeilen auswählen, welche ich z.B. bearbeiten möchte.
Nach Auswahl der zu bearbeitenden Zeilen, werden diese in eine neue Textdatei abgespeichert und dann mit einem Texteditor aufgerufen. Anschließend wird die Textdatei editiert und abgespeichert und die Ursprungsdatei aktualisiert.

Re: Python Texteditor

Verfasst: Donnerstag 16. August 2012, 15:06
von webspider
Unter Linux verwenden manche Programme den Inhalt der Umgebungsvariablen um einen "Standardeditor" auszusuchen. Allerdings verstehe ich nicht warum du nicht einfach den Nutzer auswählen lassen kannst welchen Editor er mag.

Re: Python Texteditor

Verfasst: Donnerstag 16. August 2012, 15:11
von DasIch
webspider hat geschrieben:Allerdings verstehe ich nicht warum du nicht einfach den Nutzer auswählen lassen kannst welchen Editor er mag.
Dazu musst du wissen welche Editoren der Nutzer installiert hat und einige Nutzer würden entscheiden dass er die Anwendung nicht mag.

OS X hat ``open``, Linux ``xdg-open`` und für Windows gibt es ``os.startfile``, alle öffnen Dateien mit der Standardanwendungen für Dateien des jeweiligen Typs.

Re: Python Texteditor

Verfasst: Donnerstag 16. August 2012, 15:20
von Nobuddy
DasIch hat geschrieben:
webspider hat geschrieben:Allerdings verstehe ich nicht warum du nicht einfach den Nutzer auswählen lassen kannst welchen Editor er mag.
Dazu musst du wissen welche Editoren der Nutzer installiert hat und einige Nutzer würden entscheiden dass er die Anwendung nicht mag.

OS X hat ``open``, Linux ``xdg-open`` und für Windows gibt es ``os.startfile``, alle öffnen Dateien mit der Standardanwendungen für Dateien des jeweiligen Typs.
Das ist ok, mit dem lässt sich was machen.

Re: Python Texteditor

Verfasst: Donnerstag 16. August 2012, 15:36
von Nobuddy
Habe das mal so umgesetzt:

Code: Alles auswählen

# Betriebssytem ermitteln und Befehl ausführen.
linux = sys.platform.startswith('lin')
windows = sys.platform.startswith('win')
osx = sys.platform.startswith('os')

if linux:
   standardedit = 'xdg-open'
elif windows:
   standardedit = 'os.startfile'
elif osx:
   standardedit = 'open'
else:
   print('Betriebssystem konnte nicht ermittelt werden.')
...

Code: Alles auswählen

process = subprocess.Popen([standardedit, chance])
Funktioniert prima, Danke! :wink:

Re: Python Texteditor

Verfasst: Donnerstag 16. August 2012, 16:38
von Sr4l
Nur nicht unter Windows. Den der Befehl lautet nicht "os.startfile" sondern der Funktionsaufruf.

Windows kennt aber den Befehl "start". Was nun besser ist kann ich nicht beurteilen.

Du hast die Variable standardedit genannt, geöffnet wird aber bei allen Varianten nicht der Standard Editor sondern das verknüpfte Programm zum Dateitype, d.h für HTML, XML und andere geht je nach Einstellung ein Browser oder ein Editor auf, oder etwas ganz anderes ;-)

Re: Python Texteditor

Verfasst: Donnerstag 16. August 2012, 17:49
von Nobuddy
Dann versuche ich es mal mit 'start' unter Windows, wenn ich ein Windows hätte ... :lol:

standardedit ist dann die falsche Bezeichnung für die Variable.
Besser wäre dann wohl was wie standardprog.

Re: Python Texteditor

Verfasst: Freitag 17. August 2012, 10:04
von Nobuddy
Habe daraus eine Funktion gemacht:

Code: Alles auswählen

def sysprog(filename):
    while True:
        # Betriebssytem ermitteln und Datei mit Standardprogramm öffnen.
        linux = sys.platform.startswith('lin')
        osx = sys.platform.startswith('os')
        windows = sys.platform.startswith('win')
        if linux:
            standardedit = 'xdg-open'
        elif osx:
            standardedit = 'open'
        elif windows:
            # standardedit = 'os.startfile'
            standardedit = 'start'
        else:
            print('Betriebssystem konnte nicht ermittelt werden.')
            break
        print('Datei %s wird mit dem Standardprogramm\nIhres Betriebsystem zum Editieren geöffnet!' % filename)
        process = subprocess.Popen([standardedit, filename])
        process.wait()
        break
Habe da noch eine Frage, wie kann ich eine wie oben geöffnete Datei mit dem Programm im Code wieder schließen?

Re: Python Texteditor

Verfasst: Freitag 17. August 2012, 10:08
von deets
Und das while True ist warum da? Wo du doch eh dauernd raus-breakst? Und warum printed eine solche Funktion eine Fehlermeldung anstatt eine Exception zu schmeissen, mit der du im umgebenden Code etwas anfangen kannst, statt einfach so zu tun, als ob alles ok gewesen waere?

Re: Python Texteditor

Verfasst: Freitag 17. August 2012, 10:19
von Nobuddy
deets hat geschrieben:Und das while True ist warum da? Wo du doch eh dauernd raus-breakst? Und warum printed eine solche Funktion eine Fehlermeldung anstatt eine Exception zu schmeissen, mit der du im umgebenden Code etwas anfangen kannst, statt einfach so zu tun, als ob alles ok gewesen waere?
Vielleicht habe ich da mal was falsch verstanden. Dachte es wäre immer gut, eine bestimmte Situation mit break zu beenden. Ist das falsch?
Das mit der Exception, ist eine gute Idee, werde das ändern.