Powershell 输出为数组 (Python)

Powershell Output as an Array (Python)

我正在尝试将 Get-Printer | select Name 的 Porwershell 输出放入选项菜单。例如,我如何将输出放入数组?目前输出只有一行。每台打印机都支持一个选项。

我正在使用 tkinter。 这是我的选项菜单

variable = StringVar(tkWindow)
variable.set(OptionList[0])
optionPrinter = OptionMenu(framePrinter, variable, *OptionList)
optionPrinter.place(x=5, y=35, width=270, height=25)

我的 Powershell 进程如下所示:

process=subprocess.Popen(["powershell","Get-Printer | select Name"],stdout=subprocess.PIPE);
result=process.communicate()[0]

Select -Expand Name 似乎工作正常,但当您将整个过程输出放入 python 变量时,它会将其视为单行。

您需要将结果拆分成一个数组,如 result=process.communicate()[0].splitlines()

示例代码如下所示

from tkinter import *
import subprocess

process=subprocess.Popen(["powershell","Get-Printer | select -Expand Name"],stdout=subprocess.PIPE);
result=process.communicate()[0].splitlines()
print(result[0])
print(result[1])

不确定您使用 PowerShell 搜索打印机是否有任何特定原因。您可以轻松地使用 pypiwin32 模块。

安装此模块后,您可以使用内联 python 代码仅用一行 win32print.EnumPrinters(5).

即可获取打印机列表
import win32print

printers = win32print.EnumPrinters(5)
print(printers)