Why isn't print(\a) working in IDLE
Question: **NOTE** I changed the q slightly so that it is not a duplicate anymore.
Sorry.

I have these time-consuming bioinformatics scripts I am running. I'd like them
to sound a beep when they are done.

I am on OS X.

In a [similar thread](http://stackoverflow.com/questions/6537481/python-
making-a-beep-noise) I found that `print '\a'` might work, but in Idle this
just prints `[]`

Why does this not work in IDLE


Answer: The reason it doesn't beep is that `\a` (or `^G`) is the terminal bell code;
it's up to the program handling stdout to turn that into a sound. Terminal.app
will play a sound (unless you configure it to do "visual bell" instead, of
turn it off entirely), but Idle will not. And, of course, if you're running
without a tty, you get nothing.

If you don't mind using PyObjC (which comes pre-installed with the Apple-
installed Pythons on all recent versions of OS X):

    
    
    import Cocoa
    Cocoa.NSBeep()
    

Of course this plays the OS X system beep, not the Terminal bell. Besides
possibly being a different sound, this means if you disable the bell in
Terminal, your script will still beep. (If you really want a Terminal bell,
you can always script Terminal via, e.g., ScriptingBridge. But I don't think
you care.)

