Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #67822
| From | Francis Moreau <francis.moro@gmail.com> |
|---|---|
| Subject | Re: Decoding a process output |
| Date | 2014-03-05 09:07 +0100 |
| References | <lf46bg$5qc$1@ger.gmane.org> <lf4tkk$76i$1@ger.gmane.org> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.7799.1394006779.18130.python-list@python.org> (permalink) |
On 03/04/2014 05:05 PM, Peter Otten wrote: > Francis Moreau wrote: > >> Hi, >> >> In my understanding (I'm relatively new to python), I need to decode any >> bytes data provided, in my case, by a shell command (such as findmnt) >> started by the subprocess module. The goal of my application is to parse >> the command outputs. >> >> My application runs only on linux BTW and should run fine on both python >> 2.7 and py3k. >> >> My question is when decoding the output bytes data of the external >> command, which encoding should I use ? >> >> Should I guess the encoding by inspecting LANG or any LC_* environment >> variables ? >> >> Should I force one of those environment variable to a specific value >> before running my external command ? >> >> Thanks for any tips. > > You can use locale.getpreferredencoding(), which seems to evaluate LANG: > > $ python3 -c 'import locale; print(locale.getpreferredencoding())' > UTF-8 > $ LANG= python3 -c 'import locale; print(locale.getpreferredencoding())' > ANSI_X3.4-1968 Hmm I'm confused here: when unsetting or changing LANG, the encoding is changed on the fly that makes me wonder which part of the linux system encodes the command output. I don't think it's the latter, is the libc ? Thanks
Back to comp.lang.python | Previous | Next | Find similar | Unroll thread
Re: Decoding a process output Francis Moreau <francis.moro@gmail.com> - 2014-03-05 09:07 +0100
csiph-web