Python Fabric:如何响应键盘输入?
我想要自动回答一些程序提出的问题,比如MySQL会要求输入密码,或者在我想用./manage.py rebuild_index重建我的haystack索引时,apt会问我“是”或者其他的确认问题。
对于MySQL,我可以使用--password=这个选项来直接输入密码,我相信apt也有类似“安静模式”的选项。但我该如何把回答传递给其他程序呢?
6 个回答
1
这两种方法都是有效的,可以正常工作。
我选择了第一种方法,因为我不想和我的部署系统有任何互动。
所以我使用的解决方案是:
% yes | ./manage.py rebuild_index
警告:这将不可逆转地删除你搜索索引中的所有内容。
在这之后,你的选择是从备份中恢复,或者通过 rebuild_index
命令重新建立索引。
你确定要继续吗? [y/N]
因为你这么说了,所以正在从你的索引中删除所有文档。
所有文档已删除。
正在索引27个项目。
39
如果你想让用户确认某个操作,可以使用确认方法。
if fabric.contrib.console.confirm("You tests failed do you want to continue?"):
#continue processing
或者,如果你想从用户那里获取一些输入,可以使用提示方法。
password = fabric.operations.prompt("What is your password?")
13