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
Python Texteditor
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
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.
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.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
@Sr4l, Danke werde ich mir anschauen.
@cofi, suche einen Editor, den ich in Pythoncode einbinden und Textdateien editieren kann.
Ok, und gibt es einen Standard-Texteditor für Python?webspider hat geschrieben:Ein Standard-Texteditor für Python ist aber etwas ganz anderes als ein in Python3 geschriebener TexteditorNobuddy hat geschrieben:Einen Standard-Texteditor für Python habe ich nicht gefunden.
@cofi, suche einen Editor, den ich in Pythoncode einbinden und Textdateien editieren kann.
Dann nimm doch einen, der dir gefaellt - warum muss der in Python geschrieben sein? Meiner ist Emacs, und den programmiert man in Lisp...
@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:
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!?
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'])
Ich habe mir gedacht, daß es evtl. bei Python einen eigenen Texteditor von Haus aus gibt!?
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
@deets: Der laesst sich aber nicht gern einbinden ... du koenntest natuerlich dein Python Programm in Emacs einbinden ... 
@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.

@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.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Das ist natuerlich glatt gelogen!cofi hat geschrieben:@deets: Der laesst sich aber nicht gern einbinden ... du koenntest natuerlich dein Python Programm in Emacs einbinden ...
http://aloiroberto.wordpress.com/2010/0 ... and-emacs/
Denn wir wissen ja....
http://xkcd.com/378/
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.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.
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.
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.
Dazu musst du wissen welche Editoren der Nutzer installiert hat und einige Nutzer würden entscheiden dass er die Anwendung nicht mag.webspider hat geschrieben:Allerdings verstehe ich nicht warum du nicht einfach den Nutzer auswählen lassen kannst welchen Editor er 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.DasIch hat geschrieben:Dazu musst du wissen welche Editoren der Nutzer installiert hat und einige Nutzer würden entscheiden dass er die Anwendung nicht mag.webspider hat geschrieben:Allerdings verstehe ich nicht warum du nicht einfach den Nutzer auswählen lassen kannst welchen Editor er 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.
Habe das mal so umgesetzt:
...
Funktioniert prima, Danke! 
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])

- Sr4l
- User
- Beiträge: 1091
- Registriert: Donnerstag 28. Dezember 2006, 20:02
- Wohnort: Kassel
- Kontaktdaten:
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
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

Habe daraus eine Funktion gemacht:
Habe da noch eine Frage, wie kann ich eine wie oben geöffnete Datei mit dem Programm im Code wieder schließen?
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
Zuletzt geändert von Nobuddy am Freitag 17. August 2012, 10:13, insgesamt 4-mal geändert.
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?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?
Das mit der Exception, ist eine gute Idee, werde das ändern.