让 getpass 从 shell 脚本中读取

sel*_*sel 5 python shell getpass

我有 python 脚本(第 3 方脚本)调用getpass
我需要使用脚本来提供密码。根据文档,简单的管道不起作用,因为getpass是从/dev/tty读取的。
我绝不是 shell 或 python 专家,那么有没有办法(不修改使用 getpass 的 .py 脚本)通过 bash\shell 脚本提供密码?

wim*_*wim 4

这基本上是为了从键盘获取输入而设计的。如果您不希望这样,并且无法更改脚本以从正确许可的配置文件中读取它,那么我将完全删除 getpass 调用。

from mock import patch

with patch('path.to.import.getpass') as mock:
    mock.return_value = 'hunter2'
    # call your script
Run Code Online (Sandbox Code Playgroud)

为了详细说明“调用您的脚本”,如果该脚本具有正确的入口点(例如从 setuptools 生成),则在源代码中查找所调用的底层函数。您可以导入模块并直接调用相同的函数来“运行”脚本。但是,如果脚本只是一堆模块级代码,那么您必须使用exec并显式传递包含 Monkeypatch 的范围。