有一个Windows Python应用程序。 应用程序必须收集有关网络配置的若干数据,以构建内部数据结构。 这个过程现在耗时10秒,几乎无法使用。 这10秒用于创建单独的子进程,这些子进程调用powershell来获取数据。 我认为流程创建在Windows上很重要,所以想重用单个进程来查看它是否有所作为。 我使用的代码类似于:
if not ps:
ps = sp.Popen([conf.prog.powershell],
stdout=sp.PIPE,
stdin=sp.PIPE,
universal_newlines=True)
后来:
ps.stdin.write(' '.join(cmd + ['|', 'select %s' % ', '.join(fields), '|', 'fl', '\n']))
# ... ps.stdout.read()/readline()
它挂了,所以我一直在寻找其他选择。
他们是:
我找不到任何Python库,除了阅读注册表之外,不使用进程来获取PowerShell数据(COM?)。 我找到的库(netifaces,psutil)没有提供所要求的功能。
那么,是否有人为上述案例提供了一个有效的代码示例(或者可以提供获取信息的替代方法)?
Python 2.7,但我认为不重要
操作系统:Win7 / Win10
此致 罗伯特