Скорее всего ошибка в текстовом файле. Возможно нарушена структура файла(например, в одной строке нет двоеточия).
def read (filename):
base = open(filename, 'r')
base_r = base.readlines()
base.close()
dict_r = {}
tx=0
while tx <len(base_r) :
base_re = base_r[tx]
st1 = base_re.split (':')
print ('st - ',st1)
# print(str(st1[0]),str(st1[1][:-1]))
dict_r [st1[0]] = str(st1[1])[:-1]
tx+=1
print('*'*20)
print(dict_r)
read('1.txt')
1.txthello:hello2
hello9:hello235345
hello8:hello275
hello7:hello2432
hello6:hello2873
st - ['hello', 'hello2\n']
st - ['hello9', 'hello235345\n']
st - ['hello8', 'hello275\n']
st - ['hello7', 'hello2432\n']
st - ['hello6', 'hello2873']
********************
{'hello': 'hello2', 'hello9': 'hello235345', 'hello8': 'hello275', 'hello7': 'hello2432', 'hello6': 'hello287'}
Решение:
Проблема была в том, что в текстовом файле были в конце лишние пустые строки:
В данном случае несколько решений:
1) Делать проверку на наличие пустых строк;
2) Использовать конструкцию try...except;
3) Вручную удалить лишнею пустую строку в конце файла;
4) ...