这是我的python函数,它创建htpasswd文件并在其中添加用户名和密码。
def __adduser(self, passfile, username):
command=["htpasswd", "-c", passfile, username]
execute=subprocess.Popen(command, stdout=subprocess.PIPE)
result=execute.communicate()
if execute.returncode==0:
return True
else:
#will return the Exceptions instead
return False
它工作得很好,但我想要的唯一改进是,如何 在运行应该从某个变量值
设置的脚本后,自动执行它要求的密码输入
答案 0 :(得分:1)
htpasswd
有an -i
option:
在没有验证的情况下从stdin读取密码(用于脚本)。
所以:
def __adduser(self, passfile, username, password):
command = ["htpasswd", "-i", "-c", passfile, username]
execute = subprocess.Popen(command, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
execute.communicate(input=password)
return execute.returncode == 0