Seite 1 von 1

datei in gv öffnen

Verfasst: Dienstag 16. Februar 2010, 23:00
von decaf
hallo,

da ich ein python-neuling bin, komme ich mit einem wohl sehr einfachen problem einfach nicht zurecht.

ich versuche in wx ein kleines programm zu schreiben, welches verschiedene dateien vom system in ghostview öffnen kann.

als einstieg dazu habe ich den code für den editor benutzt von http://wiki.wxpython.org/index.cgi/Anot ... ial#Editor

die datei bzw der inhalt der datei, die man auswählt, wird dann im editor angezeigt:

def OnSaveAsFile(self, event):
wcd='All files(*)|*|Editor files (*.ef)|*.ef|'
dir = os.getcwd()
save_dlg = wx.FileDialog(self, message='Save file as...', defaultDir=dir, defaultFile='',
wildcard=wcd, style=wx.SAVE | wx.OVERWRITE_PROMPT)
if save_dlg.ShowModal() == wx.ID_OK:
path = save_dlg.GetPath()

try:
file = open(path, 'w')
text = self.text.GetValue()
file.write(text)
file.close()
self.last_name_saved = os.path.basename(path)
self.statusbar.SetStatusText(self.last_name_saved + ' saved', 0)
self.modify = False
self.statusbar.SetStatusText('', 1)

except IOError, error:
dlg = wx.MessageDialog(self, 'Error saving file\n' + str(error))
dlg.ShowModal()
save_dlg.Destroy()

meine frage und große bitte: wie kann ich die dateien mit gv (linux) öffnen?
bin nunmehr richtig schön verzweifelt und hoffe, mir kann jemand mit einem tip weiterhelfen...
vielen dank im voraus

Verfasst: Mittwoch 17. Februar 2010, 12:23
von Rebecca
Bitte nutze Code-Tags! Es ist wirklich schwer, dein Schnippsel so zu lesen.

Bzgl. gv:

Code: Alles auswählen

subprocess.Popen(["gv", "bla.ps"])

Verfasst: Mittwoch 17. Februar 2010, 12:48
von decaf
sorry, kannte mich nicht aus.
vielen dank für deine schnelle antwort.
der angegebene code ist nur ein ausschnitt aus dem oben angegebenen link.

Code: Alles auswählen

def OnOpenFile(self, event):
        file_name = os.path.basename(self.last_name_saved)
        if self.modify:
            dlg = wx.MessageDialog(self, 'Save changes?', '', wx.YES_NO | wx.YES_DEFAULT | wx.CANCEL |
                        wx.ICON_QUESTION)
            val = dlg.ShowModal()
            if val == wx.ID_YES:
                self.OnSaveFile(event)
                self.DoOpenFile()
            elif val == wx.ID_CANCEL:
                dlg.Destroy()
            else:
                self.DoOpenFile()
        else:
            self.DoOpenFile()

    def DoOpenFile(self):
        wcd = 'All files (*)|*|Editor files (*.ef)|*.ef|'
        dir = os.getcwd()
        open_dlg = wx.FileDialog(self, message='Choose a file', defaultDir=dir, defaultFile='',
                        wildcard=wcd, style=wx.OPEN|wx.CHANGE_DIR)
        if open_dlg.ShowModal() == wx.ID_OK:
            path = open_dlg.GetPath()

            try:
                file = open(path, 'r')
                text = file.read()
                file.close()
                if self.text.GetLastPosition():
                    self.text.Clear()
                self.text.WriteText(text)
                self.last_name_saved = path
                self.statusbar.SetStatusText('', 1)
                self.modify = False

            except IOError, error:
                dlg = wx.MessageDialog(self, 'Error opening file\n' + str(error))
                dlg.ShowModal()

            except UnicodeDecodeError, error:
                dlg = wx.MessageDialog(self, 'Error opening file\n' + str(error))
                dlg.ShowModal()

        open_dlg.Destroy()


entschuldige dass ich nochmal so frage:
wo genau kommt das

Code: Alles auswählen

subprocess.Popen(["gv", "bla.ps"]) hin?
vielen dank & gruß

Verfasst: Mittwoch 17. Februar 2010, 12:58
von /me
decaf hat geschrieben:entschuldige dass ich nochmal so frage:
wo genau kommt das

Code: Alles auswählen

subprocess.Popen(["gv", "bla.ps"]) hin?
Da wo du diesen Aufruf durchführen möchtest.