簡體   English   中英

為什么不打印(\\ a)在IDLE中工作

[英]Why isn't print(\a) working in IDLE

注意我稍微改變了q,這樣它就不再重復了。 抱歉。

我正在運行這些耗時的生物信息學腳本。 當他們完成時,我希望他們發出嗶嗶聲。

我在OS X上。

在一個類似的線程中,我發現print '\\a'可能有效,但在Idle中這只是打印[]

為什么這在IDLE中不起作用

它沒有發出蜂鳴聲的原因是\\a (或^G )是終端鈴聲代碼; 由程序處理stdout將其轉化為聲音。 Terminal.app將播放聲音(除非你將它配置為“視覺鈴聲”,而不是完全關閉它),但是空閑則不會。 而且,當然,如果你在沒有tty的情況下跑步,你什么也得不到。

如果您不介意使用PyObjC(在所有最新版本的OS X上預裝了Apple安裝的Pythons):

import Cocoa
Cocoa.NSBeep()

當然這會播放OS X系統的蜂鳴聲,而不是終端鈴聲。 除了可能是一個不同的聲音,這意味着如果你在終端中禁用鈴聲,你的腳本仍然會發出嗶嗶聲。 (如果你真的想要一個終端鈴,你總是可以通過例如ScriptingBridge來編寫終端腳本。但我認為你並不在乎。)

這個使用afplay的微小Python片段可以滿足我的需求:在程序結束時播放十個響亮的聲音:

from os import system
for i in range(0,10):
    system('afplay /System/Library/Sounds/Glass.aiff')

我認為導入系統的開銷不小,但它對我有用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM