Python: Нужна помощь в создании словарей из текстовых файлов и разбивке списка

Я хочу сохранить данные в текстовых файлах и создать из этих файлов словари, которые я позже передам функции.

Вот мой код:

def lesson_dictionary(filename):
    print "Reading file ", filename
    with open(filename) as f:
        mylist = f.read().strip().split() 
        dictionary = OrderedDict(zip(mylist[::2], mylist[1::2])) #keep keys/values in same order as declared in mylist
        print dictionary
    return dictionary

С образцом файла с именем sample.txt, содержащим два столбца пар ключ/значение, разделенных пробелом, все работает нормально. Например,

a b

c d

e f

дает такой список:

OrderedDict([('a', 'b'), ('c', 'd'), ('e', 'f')])

НО, если я изменю код и содержимое файла .txt, он сломается. Например, если в файле sample2.txt есть:

a:b

c:d

e:f

и мой код

def lesson_dictionary(filename):
    print "Reading file ", filename
    with open(filename) as f:
        mylist = f.read().strip().split(':') #CHANGED: split string at colon!
        dictionary = OrderedDict(zip(mylist[::2], mylist[1::2]))
        print dictionary
    return dictionary

, я получаю следующий вывод:

OrderedDict([('a', 'b \nc'), ('d\ne', 'f')])

Что происходит? Почему strip() работал для первого файла .txt, но не для второго? Заранее благодарю за любую помощь.

0
задан user1186742 10 May 2012 в 21:55
поделиться