# 执行 PowerShell 命令 process = subprocess.Popen(['powershell.exe', '-ExecutionPolicy', 'Bypass', '-Command',powershell_script], stdout=subprocess.PIPE, stderr=subprocess.PIPE) process.stdout.read().decode("utf-8")出现'utf-8' codec can't decode byte 0xd5 in position 16: invalid continuation byte怎么解决
时间: 2023-12-21 10:06:46 浏览: 300
在不调用powershell.exe的情况下运行PowerShell命令-Python开发
这个错误是因为 `decode()` 方法无法解码某些字节序列。在这种情况下,你可以尝试使用其他的解码方式,例如 'gbk' 或 'utf-16' 等。
你可以修改代码,将 `decode("utf-8")` 改为其他编码方式,例如:
```python
process.stdout.read().decode("gbk")
```
如果你不确定使用哪种编码方式,可以尝试使用 Python 的 `chardet` 模块来自动检测编码方式。你可以将以下代码插入到你的程序中:
```python
import chardet
result = chardet.detect(process.stdout.read())
print(result['encoding'])
```
这段代码会自动检测编码方式并输出结果。然后你可以将输出的编码方式作为参数传递给 `decode()` 方法,例如:
```python
process.stdout.read().decode(result['encoding'])
```
阅读全文