Frage Tonalarm bei Beendigung des Codes


Ich bin in einer Situation, in der mein Code extrem lange dauert und ich möchte ihn nicht ständig anstarren, sondern wissen, wann er fertig ist.

Wie kann ich die (Python) -Code-Sound-Art zu einem "Alarm" machen, wenn es fertig ist? Ich habe mir überlegt, eine WAV-Datei abzuspielen, wenn sie das Ende des Codes erreicht ...

Ist das überhaupt eine machbare Idee? Wenn ja, wie könnte ich es tun?


75
2018-05-15 19:04


Ursprung


Antworten:


Unter Windows

import winsound
duration = 1000  # millisecond
freq = 440  # Hz
winsound.Beep(freq, duration)

Wobei freq die Frequenz in Hz und die Dauer in Millisekunden ist.

Unter Linux (und Mac)

import os
duration = 1  # second
freq = 440  # Hz
os.system('play --no-show-progress --null --channels 1 synth %s sine %f' % (duration, freq))

Um dieses Beispiel zu verwenden, müssen Sie installieren sox.

Unter Debian / Ubuntu / LinuxMint müssen Sie in Ihrem Terminal laufen:

sudo apt install sox

Hier ist die Macports-Art, das zu tun ... renne das ist dein Terminal:

sudo port install sox

Rede am Mac

Und etwas wirklich cooles, wenn Sie einen Mac im Terminal verwenden, vielleicht können Sie das gleiche in Windows, aber ich weiß nur sicher für Mac, das wird Ihnen sagen, es ist fertig:

import os
os.system('say "your program has finished"')

Rede unter Linux

import os
os.system('spd-say "your program has finished"')

Sie müssen das installieren speech-dispatcher Paket in Ubuntu (oder das entsprechende Paket in anderen Distributionen):

sudo apt install speech-dispatcher

125
2018-05-15 19:23



Dieser scheint sowohl unter Windows als auch unter Linux * zu funktionieren (von dieser Frage):

def beep():
    print "\a"
beep()

In Windows kann am Ende setzen:

import winsound
winsound.Beep(500,1000)

where 500 is the frequency in Herz
      1000 is the duration in miliseconds

*: Um unter Linux zu arbeiten, müssen Sie möglicherweise Folgendes tun (aus dem QO-Kommentar):

  • Gib in einem Terminal 'cd /etc/modprobe.d' und dann 'gksudo gedit blacklist.conf' ein
  • Kommentiere die Zeile "blacklist pcspkr" und starte dann neu
  • Überprüfen Sie auch, ob in den Terminaleinstellungen die 'Terminal Bell' markiert ist.

21
2018-05-15 19:13



 print('\007')

spielt den Glockenton


20
2018-05-13 16:32



Ubuntu Speech Dispatcher kann verwendet werden:

import subprocess
subprocess.call(['speech-dispatcher'])        #start speech dispatcher
subprocess.call(['spd-say', '"your process has finished"'])

15
2018-04-12 14:42



Kuchis Antwort funktionierte bei OS X Yosemite (10.10.1) nicht. Ich habe es gefunden ein Befehl, der funktioniert, die Sie einfach von Python aus aufrufen können. Dies funktioniert unabhängig davon, ob die akustische Klingel des Terminals aktiviert ist und ob eine externe Bibliothek vorhanden ist.

os.system('afplay /System/Library/Sounds/Sosumi.aiff')

6
2018-02-20 18:05



Sehen: Python-Sound ("Glocke")
Das hat mir geholfen, als ich das Gleiche machen wollte.
Alle Credits gehen zu gbc

Zitat:

Hast du es versucht :

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

Das funktioniert für mich hier auf Mac OS 10.5

Eigentlich denke ich, dass dein ursprünglicher Versuch auch mit ein wenig Modifikation funktioniert:

print('\a')

(Sie brauchen nur die Anführungszeichen um die Zeichenfolge herum).


5
2018-05-15 19:17



Es kann durch Code wie folgt gemacht werden:

import time
time.sleep(10)   #Set the time
for x in range(60):  
    time.sleep(1)
    print('\a')

4
2018-06-30 20:02