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)
我正在尝试将 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)