In [23]: proc = subprocess.Popen( args, stdout=subprocess.PIPE) In [24]: s = str(proc.communicate()) In [47]: type (s) Out[47]: str In [48]: chardet.detect(s) --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-48-740101961fc5> in <module>() ----> 1 chardet.detect(s) c:\users\user\appdata\local\programs\python\python36\lib\site-packages\chardet\_ _init__.py in detect(byte_str) 32 if not isinstance(byte_str, bytes): 33 raise TypeError('Expected object of type bytes or bytearray, got: ' ---> 34 '{0}'.format(type(byte_str))) 35 else: 36 byte_str = bytearray(byte_str) TypeError: Expected object of type bytes or bytearray, got: <class 'str'> #способом ниже получается избежать ошибки. но сам при этом перекодировать не получается. У винды вообще проблемы с консолью. In [42]: s2= s.encode() In [43]: chardet.detect(s2) Out[43]: {'confidence': 1.0, 'encoding': 'ascii', 'language': ''} In [44]: s2= s.encode('ascii').decode("utf-8") In [45]: s2 Out[45]: "(b'\\x8d\\xa5\\xae\\xa1\\xe5\\xae\\xa4\\xa8\\xac\\xae \\xa7\\xa0\\xa4\ \xa0\\xe2\\xec \\xa7\\xad\\xa0\\xe7\\xa5\\xad\\xa8\\xa5 \\xaf\\xa0\\xe0\\xa0\\xa c\\xa5\\xe2\\xe0\\xa0 -n 1.\\r\\n', None)"
Может подскажете как избежать проблемы?