Frage

Ich möchte, dass ein Python-Programm mich durch einen Piepton benachrichtigt, wenn es seine Aufgabe erledigt hat.Derzeit verwende ich import os Und dann verwenden Sie ein Befehlszeilen -Sprachprogramm, um "Vervollständigungsprozess" zu sagen. Ich bin viel lieber eine einfache "Glocke".

Ich weiß, dass es eine Funktion gibt, die verwendet werden kann Kakao Apps, NSBeep, aber ich glaube nicht, dass das viel damit zu tun hat.

Ich habe es auch versucht

print('\a')

aber das hat nicht funktioniert.

Ich verwende einen Mac, falls Sie das nicht anhand meines erkennen können Kakao Kommentar, das könnte helfen.

War es hilfreich?

Lösung

Hast du es versucht :

import sys
sys.stdout.write('\a')
sys.stdout.flush()

Das funktioniert bei mir hier unter Mac OS 10.5

Eigentlich denke ich, dass Ihr ursprünglicher Versuch auch mit einer kleinen Modifikation funktioniert:

print('\a')

(Sie benötigen lediglich die einfachen Anführungszeichen um die Zeichenfolge).

Andere Tipps

Wenn Sie PyObjC (die Python-Objective-C-Brücke) installiert haben oder auf dem System-Python von OS

from AppKit import NSBeep
NSBeep()

um den Systemalarm abzuspielen.

Ich habe den Mixer aus dem Pygame-Modul ausprobiert und er funktioniert gut.Installieren Sie zunächst das Modul:

$ sudo apt-get install python-pygame

Schreiben Sie dann Folgendes in das Programm:

from pygame import mixer
mixer.init() #you must initialize the mixer
alert=mixer.Sound('bell.wav')
alert.play()

Mit Pygame stehen Ihnen viele Anpassungsmöglichkeiten zur Verfügung, mit denen Sie zusätzlich experimentieren können.

Ich musste die Option „Terminalklingel stumm schalten“ in meinem aktiven Terminalprofil in iTerm deaktivieren print('\a') arbeiten.Im Terminal schien es standardmäßig einwandfrei zu funktionieren.

Sie können auch das Mac-Modul verwenden Carbon.Snd So spielen Sie den Systemton ab:

>>> import Carbon.Snd
>>> Carbon.Snd.SysBeep(1)
>>> 

Für die Carbon-Module gibt es keine Dokumentation, also musste ich sie verwenden help(Carbon.Snd) um zu sehen, welche Funktionen verfügbar sind.Es scheint eine direkte Schnittstelle zu Carbon zu sein, daher helfen wahrscheinlich die Dokumente zu Apple Developer Connection.

Aufbauend auf Barry Warks Antwort ...NSBeep() von AppKit funktioniert einwandfrei, lässt aber auch das Terminal-/App-Symbol in der Taskleiste springen.Ein paar zusätzliche Zeilen mit NSSound() vermeidet dies und bietet die Möglichkeit, einen anderen Sound zu verwenden:

from AppKit import NSSound
#prepare sound:
sound = NSSound.alloc()
sound.initWithContentsOfFile_byReference_('/System/Library/Sounds/Ping.aiff', True)
#rewind and play whenever you need it:
sound.stop() #rewind
sound.play()

Standard-Sounddateien können über die Befehlszeile gefunden werden locate /System/Library/Sounds/*.aiffDie von verwendete Datei NSBeep() scheint zu sein '/System/Library/Sounds/Funk.aiff'

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top