【问题标题】:Save output to array, print first element将输出保存到数组,打印第一个元素
【发布时间】:2014-06-24 14:10:55
【问题描述】:

我正在尝试将输出保存到数组中,并打印第一个元素,但没有显示任何内容

logins = []

for us in c.Win32_LogonSession():
    try:
        for user in us.references("Win32_LoggedOnUser"):
            logins.append(user.Antecedent.Domain, user.Antecedent.Name, sep="\\")
            print(logins[0])
    except:
        pass

如何解决这个问题?

编辑

没有引发异常。如果我重写代码

for us in c.Win32_LogonSession():
    try:
        for user in us.references("Win32_LoggedOnUser"):
            print(user.Antecedent.Domain, user.Antecedent.Name, sep="\\")
    except:
        pass

列出所有用户

DOMAIN\Glowie
DOMAIN\service_account
DOMAIN\service_account
DOMAIN\service_account
DOMAIN\service_account

【问题讨论】:

  • 显然是因为try 块中引发了一些异常
  • @frostnational --- 没有例外,当我尝试打印整个输出时,它可以解决。请参阅原始问题中的编辑。
  • 这似乎不是真的,因为.append 只接受一个参数,而您正试图将三个参数放在那里。
  • @frostnational ---- 如果 .append 不起作用,我如何将所有参数添加到数组中。我认为代码通过循环并将元素添加到数组中。如何使 user.Antecedent.Domain, user.Antecedent.Name, sep="\\" 成为单个元素?
  • 让它们成为一个列表,然后附加结果列表。

标签: python arrays python-2.7 append


【解决方案1】:

这是最终的工作代码

user_list = []
for us in c.Win32_LogonSession():
    try:
        for user in us.references("Win32_LoggedOnUser"):
            #print(user.Antecedent.Domain, user.Antecedent.Name, sep="\\")
            user_logins = user.Antecedent.Domain + "\\" + user.Antecedent.Name
            user_list.append(user_logins)

    except:
        pass


userID = user_list[0]
print(userID)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-18
    • 2019-09-12
    • 1970-01-01
    相关资源
    最近更新 更多