Profile picture

[Python] TypeError: A Bytes-Like Object Is Required, Not ‘Str’

JaehyoJJAng2023년 05월 11일

error

from openpyxl import Workbook
from subprocess import *

cmd : str = "vmstat 1 5 | awk '{now=strftime(\"%Y-%m-%d %T \"); print now $0}'"
p : Popen = Popen(cmd,shell=True,stdout=PIPE)

(ret,err) = p.communicate()

rows = ret.split('\n')

ret 변수의 데이터가 bytes 객체로 넘어와서 split 함수 사용시 TypeError: A Bytes-Like Object Is Required, Not ‘Str’ 에러가 발생하였음.


해결

  • str -> 디코딩 -> bytes
  • bytes -> 인코딩 -> str

아래와 같이 수정

rows = ret.decode().split('\n')

Loading script...