gpt4 book ai didi

python - 从 PowerShell 输出文本,读入 Python

转载 作者:行者123 更新时间:2023-12-02 23:02:04 31 4
gpt4 key购买 nike

我正在尝试将各种系统指标从 PowerShell 脚本提取到 Python 中以进行进一步处理。我已经选择了我需要的数据并使用 echo 将其放入一个我试图用 Python 读取的 txt 文件中,但是当我查看 Python 数据时,我只是变得乱码。 Powershell 在输出到 txt 文件时是否使用了一些奇怪的编码?如果是这样,有没有办法让 PowerShell 以 Python 可以读取的格式输出或指示 Python 读取 PowerShell 使用的格式?

PowerShell 代码如下所示:

$Make = Get-CimInstance CIM_ComputerSystem | Select Manufacturer
echo $Make.manufacturer > c:\Mike\Output\SysConfig.txt
$Model = Get-CimInstance CIM_ComputerSystem | Select Model
echo $Model.model >> c:\Mike\Output\SysConfig.txt
$Os = Get-CimInstance Win32_OperatingSystem | Select-Object Caption
echo $Os.caption >> c:\Mike\Output\SysConfig.txt
$CPU = Get-WmiObject Win32_Processor | Select *
echo $CPU.Name >> c:\Mike\Output\SysConfig.txt
echo $CPU.NumberOfCores >> c:\Mike\Output\SysConfig.txt
echo $CPU.NumberOfLogicalProcessors >> c:\Mike\Output\SysConfig.txt
echo $CPU.ThreadCount >> c:\Mike\Output\SysConfig.txt
echo $CPU.MaxClockSpeed >> c:\Mike\Output\SysConfig.txt
echo $CPU.CurrentClockSpeed >> c:\Mike\Output\SysConfig.txt

文本输出如下所示:

Hewlett-Packard
HP EliteBook 2570p
Microsoft Windows 10 Pro
Intel(R) Core(TM) i7-3520M CPU @ 2.90GHz
2
4
4
2901
2901

Python 代码如下所示:

with open('c:\mike\output\SysConfig.txt', mode='r') as f:
Manufacturer = f.readlines(1)
Make = f.readlines(2)
OS = f.readlines(3)
CPU_Name = f.readlines(4)
CPU_Phys_Cores = f.readlines(5)
CPU_Log_Cores = f.readlines(6)
CPU_Threads = f.readlines(7)
CPU_Max_Clock = f.readlines(8)
CPU_Curr_Clock = f.readlines(9)

print(Manufacturer)
print(Make)
print(OS)
print(CPU_Name)
print(CPU_Phys_Cores)
print(CPU_Log_Cores)
print(CPU_Threads)
print(CPU_Max_Clock)
print(CPU_Curr_Clock)

最佳答案

您的问题是重定向运算符的编码是 unicode (UTF16-LE)。

$CS = Get-CimInstance -ClassName CIM_ComputerSystem
$OS = (Get-CimInstance -ClassName Win32_OperatingSystem).Caption
$CPU = Get-CimInstance -ClassName Win32_Processor

@"
$($CS.Manufacturer)
$($CS.Model)
$OS
$($CPU.Name)
$($CPU.NumberOfCores)
$($CPU.NumberOfLogicalProcessors)
$($CPU.ThreadCount)
$($CPU.MaxClockSpeed)
$($CPU.CurrentClockSpeed)
"@ | Out-File -FilePath C:\Mike\Output\SysConfig.txt -Encoding UTF8

清理:

$CS = Get-CimInstance -ClassName CIM_ComputerSystem
$OS = (Get-CimInstance -ClassName Win32_OperatingSystem).Caption
$CPU = Get-CimInstance -ClassName Win32_Processor

"{0}`n{1}`n{2}`n{3}`n{4}`n{5}`n{6}`n{7}`n{8}" -f @( $CS.Manufacturer
$CS.Model
$OS
$CPU.Name
$CPU.NumberOfCores
$CPU.NumberOfLogicalProcessors
$CPU.ThreadCount
$CPU.MaxClockSpeed
$CPU.CurrentClockSpeed
) |
Out-File -FilePath C:\Mike\Output\SysConfig.txt -Encoding UTF8

关于python - 从 PowerShell 输出文本,读入 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47944357/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com