2017-02-02 6 views
1

Итак, я перемещаю свой код с python 2.7 до 3.6 (yay!). Тем не менее, я понял, что все мои сверхдлинных конфигурационные файлы должны быть изменены, потому что в то время как линия, как это было справедливо в конфигурационном файле в 2.7, не в 3.6Поведение встроенного комментария в python 3.6 отличается от 2.7

SCALE_PRECIPITATION = 1000.0 ; Convert from m to mm 

Есть ли способ, чтобы иметь встроенный комментарий в файле конфигурации в python 3.6?

import sys 
if sys.version_info.major == 3: 
    from configparser import ConfigParser as SafeConfigParser 
else: 
    from ConfigParser import SafeConfigParser 

parser = SafeConfigParser(inline_comment_prefixes=True) 
parser.read('config_file.txt') 
+0

Что вы используете для синтаксического анализа этих конфигурационных файлов? – user2357112

ответ

3

Похоже, что вы можете указать inline_comment_prefixes в качестве аргумента configparser.ConfigParser.

При указании inline_comment_prefixes оно будет использоваться как набор подстрок, которые префиксные комментарии непрямых строк.

Это поведение было изменено в python3.2:

Изменено в версии 3.2: В предыдущих версиях configparser поведение соответствует comment_prefixes=('#',';') и inline_comment_prefixes=(';',).

Обратите внимание, что это также говорит вам, какие значения использовать для восстановления старого поведения ;-).

+0

@wim - Я просто добавлял это :-). – mgilson

+0

спасибо @mgilson – user308827