5

qを少し変更して、重複しないようにしました。ごめん。

私は実行しているこれらの時間のかかるバイオインフォマティクススクリプトを持っています。終わったらビープ音を鳴らしてほしい。

私はOSXを使用しています。

同様のスレッドでそれが機能する可能性があることがわかりましたがprint '\a'、アイドルではこれは単に印刷されます[]

IDLEでこれが機能しないのはなぜですか

4

2 に答える 2

4

ビープ音が鳴らない理由は、\a(または^G)が端末のベルコードであるためです。それをサウンドに変えるのは、stdoutを処理するプログラム次第です。Terminal.appはサウンドを再生しますが(完全にオフにするのではなく、代わりに「ビジュアルベル」を実行するように構成しない限り)、Idleは再生しません。そしてもちろん、ttyなしで実行している場合は、何も得られません。

PyObjC(OS Xの最近のすべてのバージョンにAppleがインストールしたPythonがプリインストールされています)を使用してもかまわない場合:

import Cocoa
Cocoa.NSBeep()

もちろん、これはターミナルベルではなく、OSXシステムのビープ音を鳴らします。おそらく別の音であることに加えて、これは、ターミナルでベルを無効にしても、スクリプトがビープ音を鳴らすことを意味します。(本当にターミナルベルが必要な場合は、ScriptingBridgeなどを介していつでもターミナルのスクリプトを作成できます。ただし、気にしないと思います。)

于 2012-11-09T18:01:56.903 に答える