使用子进程

时间:2018-03-18 14:58:29

标签: python windows subprocess

我有一个python脚本,它使用子进程调用Window的nbtstat命令,以便从其IP地址获取计算机的主机名。这是在cmd中使用:

完成的

nbtstat -A 172.16.137.2

运行以下脚本会导致 WindowsError:[错误2]系统找不到指定的文件

import subprocess
p = subprocess.Popen(['nbtstat', '-A', '172.16.137.2'], std=subprocess.PIPE)

我也尝试使用cmd运行nbtstat,但收到错误消息:' nbtstat'不被识别为内部或外部命令,可操作程序或批处理文件。

import subprocess
p = subprocess.Popen(['cmd', '/c', 'nbtstat', '-A', '172.16.137.2'], stdout=subprocess.PIPE)

我不明白为什么nbtstat命令在命令提示符下工作,但不在脚本中。

1 个答案:

答案 0 :(得分:0)

我最近遇到了同样的问题。我可以打电话给' nbtstat'从Windows中的命令提示符,但不是通过python中的子进程。我能够与其他人核实并发现他们成功地返回了我的相同代码失败的信息,告诉我这是我本地安装的问题。我第一次尝试了#34;修复"安装程序中的选项无效。只有在完全卸载并重新安装之后,我才能成功从子进程调用中返回信息。