【Python】python脚本执行laravel的php artisan命令
laravel执行下面php artisan命令的时候,有一个确认步骤:
[[email protected] ~]# php artisan key:generate**************************************
* Application In Production! *
**************************************
Do you really wish to run this command? (yes/no) [no]:
> yes
现在用python脚本来自动化执行上面这个命令:
脚本auto.py
#!/usr/bin/python3import os
#重新生成key
def regenerate_key():
os.system('cd /var/www/laravel_blog && php artisan key:generate')
if __name__ == "__main__":
regenerate_key()
执行上面的脚本:
[[email protected] ~]# python3 auto.py
问题:
执行脚本和直接输入命令一样,会要求确认。怎么让这个脚本自动确认,而不用手动再输yes?
回答
一种是使用自身的--no-interaction选项;
另一种是使用进程间通信,向php进程的标准输入写入"yes",比如:
import subprocessp = subprocess.Popen(['php', 'artisan key:generate'], stdin=subprocess.PIPE)
p.stdin.write('yes')
p.stdin.flush()
还有一种简单的方法,yes命令会不断输入yes,直到命令结束:
[[email protected]]# yes yes | php artisan key:generate
这个确认步骤如何实现的?
以上是 【Python】python脚本执行laravel的php artisan命令 的全部内容, 来源链接: utcz.com/a/79284.html