문제

나는 파이썬 프로그램이 작업을 완료했을 때 경고음을 내서 나에게 경고하도록 하고 싶습니다.현재 나는 import os 그런 다음 명령 줄 음성 프로그램을 사용하여 "프로세스 완료"라고 말합니다. 오히려 간단한 "벨"입니다.

사용할 수 있는 기능이 있는 것으로 알고 있습니다. 코코아 앱, NSBeep, 하지만 내 생각엔 그게 이 일과 별로 관련이 없을 것 같아요.

나도 시도해 봤어

print('\a')

하지만 그건 효과가 없었어요.

저는 Mac을 사용하고 있습니다. 제 말을 통해 알 수 없다면 코코아 댓글을 남겨주시면 도움이 될 것 같습니다.

도움이 되었습니까?

해결책

시도해 보셨나요:

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

여기 Mac OS 10.5에서 작동합니다.

사실, 나는 약간의 수정을 통해서도 귀하의 원래 시도가 효과가 있다고 생각합니다.

print('\a')

(문자열 주위에 작은따옴표만 있으면 됩니다.)

다른 팁

PyObjC(Python - Objective-C 브리지)가 설치되어 있거나 OS X 10.5의 시스템 Python(PyObjC와 함께 제공됨)에서 실행 중인 경우 다음을 수행할 수 있습니다.

from AppKit import NSBeep
NSBeep()

시스템 경고를 재생합니다.

파이게임 모듈에서 믹서를 사용해 보았는데 잘 작동합니다.먼저 모듈을 설치합니다.

$ sudo apt-get install python-pygame

그런 다음 프로그램에서 다음과 같이 작성하십시오.

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

파이게임에는 추가로 실험해 볼 수 있는 많은 사용자 정의 옵션이 있습니다.

iTerm의 활성 터미널 프로필에서 "터미널 벨 침묵" 옵션을 꺼야 했습니다. print('\a') 일하다.터미널에서는 기본적으로 잘 작동하는 것 같았습니다.

Mac 모듈을 사용할 수도 있습니다. Carbon.Snd 시스템 경고음을 재생하려면:

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

Carbon 모듈에는 문서가 없으므로 다음을 사용해야 했습니다. help(Carbon.Snd) 어떤 기능을 사용할 수 있는지 확인해보세요.Carbon에 대한 직접적인 인터페이스인 것 같으므로 Apple Developer Connection의 문서가 도움이 될 것입니다.

Barry Wark의 답변을 바탕으로 ...NSBeep() AppKit에서 제대로 작동하지만 작업 표시줄의 터미널/앱 아이콘이 점프하게 됩니다.몇 줄 추가 NSSound() 이를 방지하고 다른 사운드를 사용할 수 있는 기회를 제공합니다.

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()

표준 사운드 파일은 명령줄을 통해 찾을 수 있습니다. locate /System/Library/Sounds/*.aiff에서 사용하는 파일 NSBeep() 것 같다 '/System/Library/Sounds/Funk.aiff'

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top