python为什么不推荐使用idle_关于python:为什么print(a)在IDLE中不起作用

注意我稍稍更改了q,以使其不再重复。 抱歉。

我正在运行这些耗时的生物信息学脚本。 我希望他们完成后听到提示音。

我在OS X上。

在类似的线程中,我发现print '\a'可能有效,但是在空闲状态下,它只会打印[]

为什么这在IDLE中不起作用

如何从Mac上的Python播放WAV或MP3音频文件触发?

@TheZ:我认为使用PyGame或什至弹出afplay对于寻找系统提示音的人来说可能是过大的。

@TheZ感谢您的链接,但是如果可以避免的话,我想避免播放声音文件。

@abarnert我离开了" Id最好是比OS X标准稍长一些,更具攻击性的哔哔声"部分,这听起来像是需要外部声音。

这个问题的可能重复:stackoverflow.com/questions/13941/python-sound-bell。第二个问题有用吗?

@TheUnfunCat不用担心,如果没有其他解决方法,至少您会有一个后备:)

@aychedee我认为你是对的。抱歉。我确实确实尝试过搜索。

@aychedee:第一个答案与OP最初尝试的答案相同;第二个与我的答案相同;第三个是Carbon等效项(它将在32位中执行与NSBeep相同的功能,而在64位中则完全不执行任何操作);第四是@TheZs建议。因此,那里没有新内容。但是我不确定这是否是该问题的解决方案,还是OP的真正问题是"为什么\a解决方案不能在空闲状态下工作"?

更改了我的q,以便希望能得到一些好处。

谢谢,您使我的回答看起来更好了;现在,它可以直接回答新问题,然后提供替代方法,而不是笨拙地先切线然后再回答原始问题。如果我能故意写那种话。 :)

它不发出蜂鸣声的原因是\a(或^G)是终端铃声。由程序处理标准输出将其转换为声音。 Terminal.app将播放声音(除非您将其配置为执行"可视铃声",而不是将其完全关闭),但是Idle不会。而且,当然,如果您没有tty来运行,您将一无所获。

如果您不介意使用PyObjC(它在所有最新版本的OS X上与Apple安装的Python一起预装):

import Cocoa

Cocoa.NSBeep()

当然,这会播放OS X系统的提示音,而不是终端铃声。除了可能会发出不同的声音之外,这意味着如果您在终端中禁用铃声,您的脚本仍会发出哔声。 (如果您确实想要终端机铃声,则可以始终通过例如ScriptingBridge编写终端机脚本。但我认为您不在乎。)

赞赏,紫外线,但我想避免导入模块

您有一个无需导入任何模块即可运行的生物信息学脚本吗? 没有math,itertools甚至sys吗? 无论如何,__builtins__名称空间中没有任何功能会发出蜂鸣声,因此,在有此限制的情况下,终端铃是您唯一的选择,这意味着您必须在Terminal.app中运行并使铃保持启用状态。

这个使用afplay的Python小片段可以满足我的需求:程序结尾处有十个响亮的叮当声:

from os import system

for i in range(0,10):

system('afplay /System/Library/Sounds/Glass.aiff')

我认为导入系统的开销不小,但是对我有用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值