が発生します。それは作品TextIOWrapperから読むこと、私はラインでサブプロセスラインを読み取ろうUnicodeDecodeError
proc = subprocess.Popen(self.monitor_logcat_cmd, shell=True, stdout=subprocess.PIPE,
bufsize=1, universal_newlines=True)
while proc.poll() is None:
line = proc.stdout.readline()
print("Process line: " + str(line))
、まだいくつかの点で私はエラーを取得:
Exception in thread Thread-14:
Traceback (most recent call last):
File "/Users/F1sherKK/anaconda3/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/Users/F1sherKK/Dev/Python/AutomationTestSupervisor/session/SessionThreads.py", line 46, in run
line = proc.stdout.readline()
File "/Users/F1sherKK/anaconda3/lib/python3.6/codecs.py", line 321, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc0 in position 89: invalid start byte
を指定/追加する方法はありますサブプロセスの標準出力をエンコードしますか?私は "無視する"エラーを追加したいと思います。
これを修正する方法はありますか?
それでは、プロセスがどのようなバイトを生成し、 'universal_newlines'をオフにしますか?プロセスのエンコーディングが何を生成しているか知っていますか? –
'monitor_logcat_cmd'には正確に何が入っていますか?どのコマンドがシェルで実行されますか? 'LANG'または' LC_CTYPE'環境変数を設定していますか? –
monitor_logcat_cmdは 'adb -s 5554 logcat'です。リアルタイムでAndroidデバイスからログを読み込んでいます。それは私が推測する様々なエンコーディングで構成できます。たとえば、ログに絵文字を入れることができます。私はenv変数を設定しませんでした。 – F1sher