[Tutor] subprocess.getstatusoutput : UnicodeDecodeError
Evuraan
evuraan at gmail.com
Thu Sep 21 18:46:29 EDT 2017
Greetings!
My search-fu failed me, so thought of finally asking this question here.
How can I work around this issue where subprocess.getstatusoutput gives
up, on Python 3.5.2:
>>> subprocess.getstatusoutput("tail -3 /tmp/pmaster.db",)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.5/subprocess.py", line 805, in getstatusoutput
data = check_output(cmd, shell=True, universal_newlines=True,
stderr=STDOUT)
File "/usr/lib/python3.5/subprocess.py", line 626, in check_output
**kwargs).stdout
File "/usr/lib/python3.5/subprocess.py", line 695, in run
stdout, stderr = process.communicate(input, timeout=timeout)
File "/usr/lib/python3.5/subprocess.py", line 1059, in communicate
stdout = self.stdout.read()
File "/usr/lib/python3.5/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 189:
ordinal not in range(128)
>>>
That file's content is kryptonite for python apparently. Other shell
operations work.
>>> subprocess.getstatusoutput("file /tmp/pmaster.db",)
(0, '/tmp/pmaster.db: Non-ISO extended-ASCII text, with very long lines,
with LF, NEL line terminators')
>>> subprocess.getstatusoutput("wc -l /tmp/pmaster.db",)
(0, '155065 /tmp/pmaster.db')
>>> subprocess.getstatusoutput("tail -3 /tmp/pmaster.db",)
Thanks in advance for your time and advice!
More information about the Tutor
mailing list