[Python-de] Befehl ausfuehrbar oder nicht ausfuehrbar? / PC-Speaker

Alexander 'boesi' Bösecke boesi.josi at gmx.net
Mon Nov 1 15:46:11 CET 2004


moin

Ist es moeglich zu testen, ob ein bestimmter String mit os.system()
ausgefuehrt werden kann, ohne den Befehl auszufuehren?

Konkret geht es mir darum, das ich in meinem Programm gern eine
plattformunabhaengige 'Beep'-Funktion haette.

Mein derzeitiger Versuch sieht so aus:

if sys.platform == 'win32':
    # ich kann mich drauf verlassen, dass unter windows win32
    # installiert ist, sonst wuerde man natuerlich winsound verwenden
    from win32api import Beep
    def beep(f=1500, d=50):
        Beep(f, d)
# an dieser Stelle soll eigentlich getestet werden ob beep vorhanden ist
elif os.system('beep') == 0: 
    def beep(f=1500, d=50):
        os.system('beep -f %d -l %d' % (f, d))
else:
    # das funktioniert leider nicht, wenn stdout umgeleitet wird,
    # was bei mir der Fall ist
    def beep(f=1500, d=50):
        print '\a',

os.system('beep') == 0 ist natuerlich nicht wirklich das was ich will.
Und das Programm beep mit meinem Programm mitzuliefern, so das ich den
Pfad kenn, find ich auch nicht sonderlich sinnvoll.

Hat jemand sonst noch Vorschlaege, wie man den PC-Speaker ansprechen
koennte?

thx & cu boesi
-- 
Ein sicherer Rechner steht ohne Netz und Strom in    #1671 : icq-intern
einem Schweizer Kellersafe, die Schwiegermutter  #73628288 : icq-extern
hält mit dem Nudelholz Wache vor der Kellertüre   boesi111 : aim
... Und sicher sind die Daten trotzdem nicht ...      i171 : reallife