我无法使用子进程,因为我需要运行Windows桌面快捷方式。这对我有用:
os.system("C:/Users/Administrator/Desktop/Neptune_Osprey_OCD_Daemon_xtensa_9.lnk")
我需要捕获命令提示符下面的上述桌面短信的输出。但我无法用os.system做到这一点。或者我尝试使用os.popen但仍然没有成功:
os.popen("C:/Users/Administrator/Desktop/Neptune_Osprey_OCD_Daemon_xtensa_9.lnk" > output.log 2 > OCD_Open_Log.txt)
答案 0 :(得分:0)
这是一个部分答案,只剩下一步了:
p = os.popen('"C:/Users/Administrator/Desktop/Neptune_Osprey_OCD_Daemon_xtensa_9.lnk" 2> OCD_Log.txt')
while 1:
line = p.readline()
if not line: break
print line
只有当我通过执行'Ctrl + c'退出命令提示符时,才会将命令提示符中运行的快捷方式的输出写入OCD_Log.txt但是。并且OCD_Log.txt也在文件末尾用'^ C'编写。
代码被挂起,因为应用程序仅在命令提示符关闭或在命令提示符下完成Ctrl + c时退出。有什么建议可以克服这最后一步吗?
答案 1 :(得分:-1)
使用popen
生成的对象来读取其输出:
import os
p = os.popen('ls .')
stdout = p.read()
p.close()
此外,你可以打开阅读和的命令进行写作,将数据传递给命令stdin
!
p = os.popen('command', 'rw')
p.write(my_input)
my_output = p.read()
p.close()
然而,不推荐使用popen
模块中的os
。但是,受你的条件限制*不要使用subprocess
,这没有任何区别。