0
0 комментариев

Использую Python 2.6.1 на ОС Linux Ubuntu. Выполнял считывание данных из файла, и потом создавал словарик. Раньше все было ок. На данный момент решил использовать тот же скрипт для считывания. Вот его функция — парсер данных из файла:

f_conf = open(module_path() + 'config.ini', 'r')
d_conf = {}
invalid_lines = "\n"
for line in f_conf.readlines():
    try:
        if line == '\n':
            continue
        d_conf[line.split('=')[0].replace(' ','')] = line.split('=')[1].replace(' ', '').replace('\n', '')
    except:
        invalid_lines += line.rstrip('\n') + '\n'

При этом я убираю пробелы и символы перевода строки. Раньше, в частности на Windows, все хорошо работало, а на Linux перестал отлавливать символ перевода строки ‘\n’. Долго искал, а как оказалось, проблема элементарна: код перевода строки, как известно, равен 13, а код ord('\n') = 10. Проблема в принципе решена, но остается вопрос, как тогда раньше работал скрипт, и как возможно еще перехватить или заменить символ перевода, кроме варианта .replace(chr(13), '') ?


Добавить комментарий