Python打印过程用另一种语言

时间:2016-07-18 14:50:28

标签: python encoding psutil

我想在计算机中打印所有正在运行的进程。我的一个进程称为哈哈.exe。 这是我的代码:

# -*- coding: utf-8 -*-
import psutil
for proc in psutil.process_iter():
        print proc.name().encode('utf-8')

我得到了中文进程的输出??.exe。有人知道如何正确显示进程名称吗?

3 个答案:

答案 0 :(得分:0)

也许尝试做这样的格式?

import psutil

for proc in psutil.process_iter():
    try:
        pinfo = proc.as_dict(attrs=['name'])
    except psutil.NoSuchProcess:
        pass
    else:
        print pinfo

答案 1 :(得分:0)

encode是错误的方法:编码结果是二进制值,准备输出到文件。你在想的是decode函数,它将二进制值(返回)转换为字符串。

如果字符串在没有编码(或解码)的情况下无法正常显示,那么您需要确定使用哪种编码,将名称转换为字节字符串,然后从正确的类型解码。

与许多语言一样,Python开始以正确的方式概念化字符串处理:

  • 文本数据没有(真)编码或字节语义。解释器使用它想要的任何编码,并向用户呈现字符。你必须对它进行编码以将其发送到文件(但是,有一个默认编码:UTF-8或locale都有意义,我相信Python会为此选择UTF-8。)
  • 二进制数据没有文本表示:您必须对其进行显式解码才能将其视为文本,这会迫使您考虑它所处的编码。

答案 2 :(得分:0)

您的操作系统是中文并在cmd窗口中运行脚本?你可以proc.name().encode('gbk')