내 코드를 실행하는 데 시간이 오래 걸리고 항상 쳐다보고 싶지 않지만 언제 완료되는지 알고 싶습니다.
(파이썬) 코드를 소리가 “알람”으로 만들려면 어떻게해야합니까? 코드 끝에 도달했을 때 .wav 파일을 재생하려고 생각하고있었습니다 …
이것이 가능한 아이디어 일까? 그렇다면 어떻게 할 수 있습니까?
답변
Windows에서
import winsound
duration = 1000 # milliseconds
freq = 440 # Hz
winsound.Beep(freq, duration)
여기서 freq는 주파수 (Hz)이고 지속 시간은 밀리 초입니다.
Linux 및 Mac에서
import os
duration = 1 # seconds
freq = 440 # Hz
os.system('play -nq -t alsa synth {} sine {}'.format(duration, freq))
이 예제를 사용하려면 설치해야합니다 sox
.
데비안 / 우분투 / 리눅스 민트의 터미널에서 이것을 실행하십시오 :
sudo apt install sox
Mac의 경우 터미널에서이를 실행하십시오 (macports 사용).
sudo port install sox
Mac에서의 연설
import os
os.system('say "your program has finished"')
리눅스 연설
import os
os.system('spd-say "your program has finished"')
speech-dispatcher
우분투 (또는 다른 배포판의 해당 패키지)에 패키지 를 설치해야합니다 :
sudo apt install speech-dispatcher
답변
print('\007')
벨 소리를 재생합니다
답변
이것은 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’이라고 적힌 줄에 주석을 달고 재부팅하십시오.
- 터미널 환경 설정에 ‘터미널 벨’이 있는지 확인하십시오.
답변
우분투 음성 디스패처를 사용할 수 있습니다 :
import subprocess
subprocess.call(['speech-dispatcher']) #start speech dispatcher
subprocess.call(['spd-say', '"your process has finished"'])
답변
나는 당신이 표준 시스템 벨을 원한다고 가정하고 주파수와 지속 시간 등에 신경 쓰지 않고 표준 윈도우 벨을 원합니다.
import winsound
winsound.MessageBeep()
답변
쿠치의 답변 은 OS X Yosemite (10.10.1)에서 작동하지 않았습니다. 파이썬에서 호출 할 수 있는 afplay
명령 ( here )을 찾았습니다 . 이것은 터미널 가청 벨의 활성화 여부에 관계없이 작동하며 타사 라이브러리가 없습니다.
import os
os.system('afplay /System/Library/Sounds/Sosumi.aiff')
답변
참고 : Python Sound ( “Bell”)
이것은 내가 똑같이하고 싶을 때 도움이되었습니다.
모든 크레딧은 gbc 로 이동
인용문:
당신이 시도 했습니까 :
import sys
sys.stdout.write('\a')
sys.stdout.flush()
그것은 Mac OS 10.5에서 나를 위해 작동합니다.
실제로, 당신의 원래 시도는 약간의 수정으로도 효과가 있다고 생각합니다.
print('\a')
(문자 순서 주위에 작은 따옴표가 필요합니다).