1

TypeError: タイプ str はバッファ API をサポートしていません

このコードを python3.4.2 で実行すると

import subprocess

def getLength(filename):
  result = subprocess.Popen(["ffprobe", filename],
    stdout = subprocess.PIPE, stderr = subprocess.STDOUT)
  return [x for x in result.stdout.readlines() if "Duration" in x]
4

1 に答える 1

1

Python 3.x では、サブプロセスの stdout を読み取ると、bytes代わりにstr.

リテラルを使用bytesすると問題が解決します(b文字列リテラルの前に追加します)

return [x for x in result.stdout.readlines() if b"Duration" in x]

ところで、readlines必要ありません。単に繰り返すresult.stdout

return [x for x in result.stdout if b"Duration" in x]
于 2015-01-24T14:22:57.490 に答える