我想打印我电脑中所有正在运行的进程。我的一个过程称为哈哈.exe
. 这是我的代码:
# -*- coding: utf-8 -*-
import psutil
for proc in psutil.process_iter():
print proc.name().encode('utf-8')
我得到??.exe
了中文进程的输出。有人知道如何正确显示进程名称吗?
encode
是错误的方法:编码的结果是一个二进制值,准备输出到文件。您正在考虑的是 decode函数,它将二进制值(返回)转换为字符串。
如果字符串在没有编码(或解码)的情况下无法正确显示,那么您需要确定使用了哪种编码,将名称转换为字节串,然后从正确的类型解码。
像许多语言一样,Python 开始以正确的方式概念化字符串处理:
你的操作系统是中文的并在cmd窗口中运行脚本?你可以proc.name().encode('gbk')
也许尝试做这样的格式?
import psutil
for proc in psutil.process_iter():
try:
pinfo = proc.as_dict(attrs=['name'])
except psutil.NoSuchProcess:
pass
else:
print pinfo