我正在编写脚本,而我的app.py看起来像这样;
Proto Local Address Foreign Address State
TCP 127.0.0.1:5432 PCname:56449 ESTABLISHED
您可能已经知道此apt-get正在要求确认。我知道我可以在结尾加上一个额外的import subprocess
subprocess.call(["sudo", "apt-get", "update"])
subprocess.call(["sudo", "apt-get", "upgrade"])
,但我需要知道如何制作,以便在出现提示时按Enter。
有些提示不接受-y
,所以这就是我要问的原因。
例如; adding a repository或this screen when you run apt-get upgrade on Ubuntu 18.04
因此,对于这些提示,我需要自动按-y
。在这个概念中应该是这样的;
Enter
答案 0 :(得分:0)
您可以使用subprocess.Popen
和subprocess.communicate
将输入发送到另一个程序。
from subprocess import Popen, PIPE
p = Popen(command_list, stdin=PIPE, shell=True)
p.communicate(input='\n')
摘自How to make python script press 'enter' when prompted on Shell
的文字示例您可以自定义此行为以执行更复杂的任务,但这似乎基本上就是您要问的。
我几乎可以肯定,您可以在Shell脚本中获得相同的行为,但是如果您知道如何使用或想要使用的是Python,则可以完美地做到这一点。 Python使您可以执行其他更复杂的工作; Shell使您可以简单地访问系统。
修复shell脚本: https://stackoverflow.com/a/6264618/4396006
旁注:将来,请尝试展示一些研究成果,并在提出问题之前先用Google搜索您的问题。我正是这样做的,目的是为您找到一个快速的示例,而不必从脑海中回想起,并且不到半秒钟就得到了72k的结果(我相信大多数人都说的和我一样)>