[python] os.listdir

Radek Kanovsky rk na dat.cz
Pátek Prosinec 1 11:16:18 CET 2006


On Fri, Dec 01, 2006 at 10:19:28AM +0100, Novák Jan - Topinfo s.r.o. wrote:

> Python/2.4.4 (Debian)
> >>> import os, sys
> >>> sys.getfilesystemencoding()
> 'ANSI_X3.4-1968'
> >>> os.listdir('path')
> ['aaa.txt', 'bbb.txt', '\xe8e\xb9tina.txt', 'ccc.txt']
> >>> os.listdir(u'path')
> [u'aaa.txt', u'bbb.txt', '\xe8e\xb9tina.txt', u'ccc.txt']
> >>> ...? 3. není unicode

ANSI_X3.4-1968 je myslim normalni 7bitove ASCII kodovani.
Takze prevod diakritiky zhavaruje.

Zkuste nastavit systemovou promennou LC_CTYPE na cs_CZ.UTF-8
(nebo en_US.UTF-8).

    $ LC_CTYPE=cs python -c 'import sys; print sys.getfilesystemencoding()'
    ANSI_X3.4-1968

    $ LC_CTYPE=cs_CZ.UTF-8 python -c 'import sys; print sys.getfilesystemencoding()'
    UTF-8

Pak to snad bude fungovat.

Radek Kaňovský


Další informace o konferenci Python