cmd获取ansyslicense信息

1、os的popen可用获取cmd命令执行的内容信息

import os
info = os.popen(cmd).read()  # 执行cmd命令并获取执行输出的内容
View Code

2、ansys license 获取命令

 '"C:\Program Files\ANSYS Inc\Shared Files\Licensing\winx64\lmutil" lmstat -a -c 1055@hostname  # (hostname 为 licnese server的主机名)
View Code

3、汇总

import os


def get_num(info):
    n1 = int(info.split("of")[2][1])
    n2 = int(info.split("of")[3][1])
    # print(n1, n2, type(n1))
    return n1 - n2


def have_num():
    li = [
        "255.255.255.255",
        "255.255.255.256",
        "255.255.255.257",
    ]
    info = ''
    for i in li:
        info += os.popen(
            '"C:\Program Files\ANSYS Inc\Shared Files\Licensing\winx64\lmutil" lmstat -a -c 1055@%s' % i).read()
    info = info.split("\n")
    solver = hpc = 0
    for i in info:
        if 'Users of anshpc_pack' in i:
            hpc += get_num(i)

        elif 'Users of cfd_solve_level1' in i:
            solver += get_num(i)

    print("可用的hpc license数量为:", hpc)
    print("可用的solver license数量为:", solver)
    num = 0
    if solver:
        num = 4
        if hpc:
            num += 8 * 4 ** (hpc-1)
    return num


if __name__ == '__main__':
    print(have_num())
View Code

 

posted @ 2020-04-20 16:29  虾米维生素  阅读(193)  评论(0)    收藏  举报