1

コンピューターで実行中のすべてのプロセスを印刷したい。私のプロセスの 1 つが呼び出され哈哈.exeます。これは私のコードです:

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

??.exe中国のプロセスの出力を取得します。プロセス名を正しく表示する方法を誰かが知っていますか?

4

3 に答える 3

0

たぶん、このようなフォーマットを試してみませんか?

import psutil

for proc in psutil.process_iter():
    try:
        pinfo = proc.as_dict(attrs=['name'])
    except psutil.NoSuchProcess:
        pass
    else:
        print pinfo
于 2016-07-18T15:06:23.967 に答える
0

encodeこれについては間違った方法です。エンコードの結果はバイナリ値であり、ファイルに出力する準備ができています。あなたが考えているのは 、バイナリ値を (逆に) 文字列に変換するデコード関数です。

エンコード (またはデコード) しないと文字列が正しく表示されない場合は、使用されているエンコードを特定し、名前をバイト文字列に変換してから、正しい型からデコードする必要があります。


多くの言語と同様に、Python は文字列処理を正しい方法で概念化し始めています。

  • テキスト データには (真の) エンコーディングやバイト セマンティクスはありません。インタプリタは、任意のエンコーディングを使用して、ユーザーに文字を表示します。ファイルに送信するにはエンコードする必要があります (ただし、デフォルトのエンコードがあります。UTF-8 またはロケールはどちらも意味があり、Python はこれに UTF-8 を選択すると思います。)
  • バイナリ データにはテキスト表現がありません。テキストとして扱うには、明示的にデコードする必要があります。そのため、どのエンコーディングであるかを考える必要があります。
于 2016-07-18T15:06:47.827 に答える
0

あなたのOSは中国語で、コマンドウィンドウでスクリプトを実行しますか? あなたは出来るproc.name().encode('gbk')

于 2016-07-18T15:32:11.737 に答える