我有一个相当小的python脚本,它包含了一个更复杂的Java程序。 python脚本从环境中收集一些信息,然后使用一些适当的参数调用java程序。
java程序需要访问实际的控制台句柄,以便输入密码。具体来说,它使用System.console().readPassword()
,但如果您使用python中的System.console()
,则subprocess.PIPE
为空。不使用PIPE
不是一个选项,因为我需要读取java程序的输出,因为在某些情况下,包装器需要根据输出采取行动。
我完全无法找到满足这两个条件的方法(Java可以访问真正的控制台句柄,我仍然可以从中收集输出),而无需使用大量特定于平台的代码。使用pty
似乎是Unix-verse的一个好角度,但Windows的选项似乎仅限于数百行ctype废话。
有没有办法合理地做到这一点(使用python的stdlib)?