Форум сайта python.su
Кок в конфигурационный файл обрабатываемый ConfigParser-м впихнуть не латинские символы(нужно для записи путей файлов) или может есть адекватная замена этому модулю?
Офлайн
ConfigObj
Офлайн
ConfigObj спасибо попробую.
Офлайн
можно ли приучить ConfigObj понимать ; как символ начала комментария?
Офлайн
Кок в конфигурационный файл обрабатываемый ConfigParser-м впихнуть не латинские символы(нужно для записи путей файлов) или может есть адекватная замена этому модулю?так ради лулзов решил проверить правда ли ConfigParser не понимает не латинские символы, вот что вышло:
In [3]: # -*- coding: utf-8 -*- In [4]: ini = """[section] url = 'adsada' uri = 'ыфвфыв'""" In [5]: f = open('/tmp/sample_ini', 'w') In [6]: f.write(ini.strip()) In [7]: f.close() In [8]: f = open('/tmp/sample_ini', 'r') In [9]: print f.read() [section] url = 'adsada' uri = 'ыфвфыв' In [10]: from ConfigParser import ConfigParser In [11]: c = ConfigParser() In [12]: c.read('/tmp/sample_ini') Out[12]: ['/tmp/sample_ini'] In [13]: print c.get('section', 'uri') 'ыфвфыв'
Офлайн
>так ради лулзов решил проверить правда ли ConfigParser не понимает не латинские символы, вот что вышло:
Читать он их вполне может, а вот записывать….
Офлайн
In [1]: # -*- coding: utf-8 -*- In [2]: from ConfigParser import ConfigParser In [3]: c = ConfigParser() In [4]: c.add_section('sample') In [5]: c.set('sample', 'url', 'dasdasdasd') In [6]: c.set('sample', 'uri', 'ыфвфвыфвфыв') In [7]: c.items('sample') Out[7]: [('url', 'dasdasdasd'), ('uri', '\xd1\x8b\xd1\x84\xd0\xb2\xd1\x84\xd0\xb2\xd1\x8b\xd1\x84\xd0\xb2\xd1\x84\xd1\x8b\xd0\xb2')] In [8]: c.write(open('/tmp/sample_ini', 'wu')) In [9]: print open('/tmp/sample_ini', 'r').read() [sample] url = dasdasdasd uri = ыфвфвыфвфыв
Отредактировано (Июнь 4, 2008 22:27:13)
Офлайн
ребята, вопрос был про юникод. ни в одном приведенном примере юникодных строк я не вижу. изучайте материальную часть.
Офлайн