Seite 1 von 1
Datei öffnen vor dem ausführen eines Scripts...
Verfasst: Donnerstag 4. Dezember 2008, 18:08
von DjFresH
Ich grüße das Forum,
habe folgendes Problem:
Ich habe schon ein fertiges Python Script und habe dafür auch eine
Anleitung in Form einer Readme Datei, ist es möglich dass wenn ich
das script anklicke, diese Readme Datei ausgefürht wird (oder von mir aus auch eine Dialog Box)
bevor der eigentliche Code ausgeführt wird.
Oder andere Variante die Dialog Box erscheint mit Readme Inhalt
und wenn man auf OK klickt werden die nächsten Zeilen des Scripts ausgeführt.
...und wenn der Code erfolgreich ausgeführt wurde soll nochmals eine
Bestätigung erscheinen, z.B. auch eine Dialog Box in der steht ,
Code erfolgreich ausgeführt.
...das letztere könnte man wohl mit einem try/except block realisieren,
würde ich mal behaupten, sprich wenn Code nicht bis zum ende
des try blocks ausgeführt wurde dann kommt except block mit Dialog Box "nicht erfolgreich".
Bei der oberen Variante habe ich bisher noch keinen Lösungsansatz gefunden.
Hoffe jemand von euch hat da eine Idee...
gruß Sascha
Verfasst: Donnerstag 4. Dezember 2008, 18:15
von crackpod_
Hört sich jetzt so an als suchst du nach einem GUI-Toolkit. Dafür gibt es hier auch eine
Abteilung die dir weiter helfen können sollte.
Falls es dir jetzt nicht direkt auf das GUI ankommt könntest du auch einfach aus deinem Script eine Konsolen Applikation machen und
dort die Readme Datei vor dem eigentlichen ausführen des Scriptes anzeigen lassen.
Verfasst: Donnerstag 4. Dezember 2008, 18:18
von cofi
Leider kann man dir mit deinen Angaben nicht sonderlich helfen.
Möglich ist das natürlich, ob das natürlich toll ist Benutzer damit zu belästigen - sollten sie Hilfe brauchen können sie immernoch einen Blick auf die readme werfen.
Aber um dir zu helfen bräuchte man noch die Angabe welches GUI-Toolkit du verwendest.
Wenn es denn ein Konsolenprogramm ist würde ich es ganz sein lassen und die readme nur ausgeben, wenn die Parameter nicht stimmen oder ein bestimmter - z.B. `--help' - aufgerufen wurde.
Verfasst: Freitag 5. Dezember 2008, 08:23
von DjFresH
Also ich habe ein Script erstellt welches einen Vorgang automatisiert.
Bevor dieses Script ausgeführt wird soll sich eine readme.txt Datei öffnen,
da man dieses Script nur unter bestimmten vorraussetzungen benutzen kann, bzw. einen bestimmten Parameter noch verändern kann.
Wenn das Script dann erfolgreich ausgeführt wurde soll sich ein Dialog öffnen mit der Meldung z.B. "Mission Accomplished"...
Verfasst: Freitag 5. Dezember 2008, 09:24
von gkuhl
Zunächst mal: Jeder Benutzer eines Skripts sollte vor dessen Benutzung die README lesen um sich möglicher Probleme bewusst zu sein. Wenn sich bei jedem Skriptaufruf eine Editor öffnet fände ich das Benutzer extrem(!) nervig.
Wenn du während der Ausführung des Skripts (in der Konsole) den Benutzer auf etwas Hinweisen möchtest nutze die print()-Funktion wie von crackpod_ vorgeschlagen und lass dir per Eingabe vom Benutzer bestätigen, dass er das verstanden hat. Wenn das Skript seine Arbeit beendet hat kannst du ebenfalls print() benutzen.
Für eine grafische Ausgabe beschäftige dich mal mit den GUI-Toolkits
gkuhl
Verfasst: Freitag 5. Dezember 2008, 09:56
von gerold
Hallo Sascha!
So etwas kannst du mit einem GUI-Toolkit (Graphical User Interface) machen. Für so kleine Sachen wie das einfache Anzeigen eines Textes und einer Dialogbox, kannst du das mit Python mitgelieferte "TkInter" verwenden.
Da ich TkInter nicht mag, zeige ich dir, wie man das mit wxPython
http://wxpython.org erledigt.
Installiere wxPython und die zugehörige DEMO um dieses Beispiel ausführen zu können und mehr über wxPython zu erfahren.
http://wxpython.org/download.php#binaries
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import wx
import wx.lib.dialogs
def main():
app = wx.PySimpleApp()
# scrolledMessageDialog
diag = wx.lib.dialogs.scrolledMessageDialog(
message = (
u"Hier kann ein langer Text stehen.\n"
u"Hier kann ein langer Text stehen.\n"
u"Hier kann ein langer Text stehen.\n"
u"Hier kann ein langer Text stehen.\n"
),
title = u"Überschrift"
)
# MessageBox (Hinweis)
wx.MessageBox(
message = u"Hier steht der Hinweistext.",
caption = u"Hinweis"
)
# MessageBox (Fehler)
wx.MessageBox(
message = u"Hier steht der Fehlertext.",
caption = u"Fehler",
style = wx.OK | wx.CENTER | wx.ICON_ERROR
)
# MessageBox (Ja/Nein Frage)
if wx.MessageBox(
message = u"Antworten Sie mit Ja oder Nein.",
caption = u"Eine Frage",
style = wx.YES | wx.NO | wx.CENTER | wx.ICON_QUESTION
) == wx.YES:
print u"Es wurde JA geantwortet"
else:
print u"Es wurde NEIN geantwortet"
if __name__ == "__main__":
main()
mfg
Gerold

Verfasst: Freitag 5. Dezember 2008, 11:29
von DjFresH
Vielen Dank für eure Antworten.
Vll. habe ich etwas zu kompliziert gedacht.
Ich habe das jetzt auf eine einfache Weise gelöst:
Ich habe um das Script in einen try/except Block eingefügt,
sprich wenn das Script erfolgreich ausgeführt wurde wird eine Konsole
geöffnet mit der Meldung "ergebnis.txt successfully created" und wenn
es im try block fehler gab wird der except block ausgeführt mit der
Anleitung und der Meldung "Failure occured ...try again" o.ä.
...müsste wohl die einfachste Lösung sein...
gruss Sascha
Verfasst: Freitag 5. Dezember 2008, 12:59
von Hyperion
Das löst jetzt zwar nicht das Problem mit der Readme-Datei, die am Anfang angezeigt werden sollte, aber gut ...

Verfasst: Freitag 5. Dezember 2008, 14:21
von DjFresH
Im Prinzip schon...
in der Readme Datei wären nur die Anweisungen drin gestanden...
im Prinzip 3 Zeilen....
also :
Code: Alles auswählen
print("1...")
print("2....")
print("")
raw_input("try again")
Verfasst: Freitag 5. Dezember 2008, 15:11
von Hyperion
Ist mir zwar immer noch nicht klar, aber ist ja nicht so wichtig

Verfasst: Freitag 5. Dezember 2008, 15:19
von DjFresH
Ist mir zwar immer noch nicht klar, aber ist ja nicht so wichtig
...ja ich weiss auch nich wie ich dir das anders erklären soll...
...ich hab geschrieben: eine Anleitung in Form einer Readme und
ich habe das jetzt so gelöst das eine Konsole mit Eingabeaufforderung geöffnet wird anstatt einer
text datei...