Подтвердить что ты не робот

Python: звуковой сигнал при завершении кода

Я в ситуации, когда мой код занимает очень много времени, и я не хочу смотреть на него все время, но хочу знать, когда это будет сделано.

Как я могу сделать код (Python) вроде звука "сигналом тревоги", когда это будет сделано? Я думал о том, чтобы заставить его играть в WAV файл, когда он достигнет конца кода...

Это даже реальная идея? Если да, как я могу это сделать?

4b9b3361

Ответ 1

В Windows

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

Где частота - это частота в Гц, а длительность - в миллисекундах.

В Linux (и Mac)

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

Чтобы использовать этот пример, вы должны установить sox.

В Debian/Ubuntu/LinuxMint вам нужно запустить в своем терминале:

sudo apt install sox

Вот способ macports сделать это... запустите это ваш терминал:

sudo port install sox

Речь на Mac

И что-то действительно здорово, если вы используете Mac в терминале, возможно, можете сделать то же самое в Windows, но я точно знаю только для mac, это скажет вам, что это сделано:

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

Речь о Linux

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

Вам нужно установить пакет speech-dispatcher в Ubuntu (или соответствующий пакет в других дистрибутивах):

sudo apt install speech-dispatcher

Ответ 2

Этот, похоже, работает как с Windows, так и с Linux * (от этого вопроса):

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

В Windows можно положить в конец:

import winsound
winsound.Beep(500,1000)

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

*: для работы с Linux вам может потребоваться следующее (из комментария QO):

  • в терминале введите 'cd/etc/modprobe.d', затем 'gksudo gedit blacklist.conf'
  • прокомментируйте строку с надписью "blacklist pcspkr", затем перезагрузите
  • проверьте также, что настройки терминала имеют флажок "Terminal Bell".

Ответ 3

Можно использовать речевой диспетчер ubuntu:

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

Ответ 4

 print('\007')

воспроизводит звук звонка

Ответ 5

Ответ Кучи не работал у меня на OS X Yosemite (10.10.1). Я нашел команду, которая работает, которую вы можете просто вызвать из Python. Это работает независимо от того, включен ли звуковой звонок терминала и без сторонней библиотеки.

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

Ответ 6

Смотрите: Python Sound ( "Bell" )
Это помогло мне, когда я хотел сделать то же самое.
Все кредиты идут на gbc

Цитата:

Вы пробовали:

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

Это работает для меня здесь, в Mac OS 10.5

Собственно, я думаю, что твоя оригинальная попытка работает и с небольшой модификацией:

print('\a')

(Вам просто нужны одиночные кавычки вокруг последовательности символов).

Ответ 7

Это можно сделать с помощью кода следующим образом:

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

Ответ 8

import subprocess

subprocess.call(['D:\greensoft\TTPlayer\TTPlayer.exe', "E:\stridevampaclip.mp3"])

Ответ 9

Зачем использовать python? Вы можете забыть удалить его и проверить в репозитории. Просто запустите команду python с помощью && и еще одна команда для запуска оповещения.

python myscript.py && 
    notify-send 'Alert' 'Your task is complete' && 
    paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga

или отбросить функцию в ваш .bashrc. Я использую apython здесь, но вы можете переопределить 'python'

function apython() {
    /usr/bin/python $*
    notify-send 'Alert' "python $* is complete"
    paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga
}

Ответ 10

Я предполагаю, что вам нужен стандартный системный звонок, и вы не хотите беспокоиться о частотах и ​​продолжительности и т.д., вам просто нужен стандартный звонок в окно.

import winsound
winsound.MessageBeep()