【发布时间】:2012-11-21 03:03:11
【问题描述】:
我有一个广泛使用 Python(2.* 风格)的项目,我想知道是否有终端菜单库或类似的东西?我希望通过使用箭头键突出显示选项、一些颜色等来简化一些选项,从而为我的脚本注入一些风味和活力。我隐约记得有一种方法可以制作 bash shell 终端菜单,但我不在确定我将如何将用户输入从 bash 传递到 python 脚本,也许有一个 bash 终端菜单用 sysargs 推送脚本调用?如果可能的话,我想要 python 方面的东西。有什么建议吗?
这也只是一个随机问题,因为我们讨论的是终端美学这个话题,所以这里很适合,处理柜台的最佳方式是什么?我的脚本查找图像文件,然后当它找到一个时,它通过子进程调用清除终端以清除,然后再次打印找到的总图像 IE 10 图像,找到一个,清除,打印“找到 11 个图像”,有时我的脚本有效真的很快,我觉得这会损害性能。想法?
非常感谢大家,我喜欢堆栈溢出;)
编辑 - 感谢所有快速回复!我有很多选择要考虑。我给了每个人一个赞成票,因为您的所有回答都很有帮助。当我回到家时,我会查看所有的图书馆,并尝试根据最佳答案选择你们中的一个作为答案,但希望我能选择你们所有人,因为你的所有答案都是相关的!非常感谢各位。下班回家后我会回来报告,并有机会编写一些代码;)
编辑 2 - 计数器/进度显示的说明,当我的脚本在很短的时间内找到数千张图像时,寻找一种方法来防止这种情况损害性能,这是真正切碎的 python...
for each item in list:
if item ends with .jpg
cnt=cnt+1
do stuff with image file
subprocess.call('clear')
print str(cnt)+" total images processed."
再次感谢!
【问题讨论】:
-
我不明白你在柜台部分问什么。
-
@MatthewAdams 嘿,抱歉含糊不清!基本上每次我的脚本从它正在查看的任何源中找到一个图像文件时,它都会快速执行 cnt = cnt+1,从而增加计数器。所以基本上计数器/进度显示有点像 - 请参阅编辑 2!
-
啊。当“用图像文件做东西”绝对是其中最慢的部分时,很难谈论性能损失。如果你愿意,我想你可以尝试并行执行。
-
@MatthewAdams 它在一个文件列表中循环,如果文件名以 jpg 结尾,它会将该文件名推送到另一个列表中。事情就是这样,“mylist.append(item)”。该项目的实际处理发生在稍后。就像我说的,切碎了 python ;)
-
哦,那并没有什么特别慢的地方,虽然每次都清屏似乎完全没有必要。