gpt4 book ai didi

java - 无法使用 os.popen 捕获 java -version 的输出

转载 作者:行者123 更新时间:2023-11-30 04:42:19 26 4
gpt4 key购买 nike

这是我的代码

    f = os.popen("java -version")
for i in f.readlines():
print "result, ", i,

基本上我希望 java -version 的输出存储在 f 中。发生的情况是,在脚本的第一行执行后,java版本信息被打印出来,但没有存储在f中,因此第三行代码根本没有执行。此代码适用于其他命令,例如“ls -la”,但不适用于 java -version。关于原因有什么想法吗?

提前致谢。

最佳答案

由于 java -version 转到 stderr,而不是 stdin,因此您必须重定向它:

f = os.popen("java -version 2>&1")
for i in f.readlines():
print "result, ", i,

更好的是,使用 subprocess模块,旨在使此类事情变得更容易:

print subprocess.check_output("java -version", stderr=subprocess.STDOUT, shell=True)

关于java - 无法使用 os.popen 捕获 java -version 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11967609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com