Текстовый файл Python в словарь не работает
Итак, текст файла, который я должен перенести в словарь для телефонной книги, выглядит следующим образом:
Имя1 Имя2 Номера
Имя3 Имя4 Номера2
и так далее..
Что я пробовал:
def read():
file1=open("file.txt","r")
dict={}
for line in file1:
line=line.split()
if not line:continue
dict[line[0]]=line[1:]
print(dict)
Когда я запускаю его, он ничего не печатает.
Спасибо!
4 ответа
Это мой путь
def read_dict():
file1 = open("file.txt", 'r')
dict={}
# read lines of all
lines = file1.readlines()
# Process one line at a time.
for line in lines:
line = line.split()
if not line: continue
dict[line[0]] = line[1:]
file1.close()
print(dict)
read_dict()
или (используйте с) вам не нужно закрывать файл
def read_dict():
with open("file.txt", 'r') as file1:
dict={}
# read lines of all
lines = file1.readlines()
# Process one line at a time.
for line in lines:
line = line.split()
if not line: continue
dict[line[0]] = line[1:]
print(dict)
Убедитесь, что вы вызываете функцию. Я немного изменил его, поэтому он не использует такие слова, как "читать" или "дикт". Это работает:
def main():
thefile = open("file.txt","r")
thedict={}
for theline in thefile:
thelist = theline.split(" ")
if not thelist:
continue
thedict[thelist[0]]=thelist[1:]
print(thedict)
main()
результаты в:
{'Name1': ['Name2', 'Numbers\n'], 'Name3': ['Name4', 'Numbers2']}
Много комментариев, чтобы сделать здесь.
1 - Вы забыли добавить ".read()" при открытии файла.
2 - Вы используете зарезервированные слова для языка Python. "dict" - это то, что используется языком, поэтому избегайте его использования напрямую. Вместо этого назовите их более конкретно. Любой ценой избегайте именования ваших переменных словами, уже используемыми языком Python.
3 - Ваша функция ничего не возвращает. В конце каждой функции необходимо указать "return" плюс объект, для которого функция должна возвращать значение.
def read_dict():
file1 = open("file.txt","r").read()
my_dict = {}
for line in file1:
line = line.split()
if not line:
continue
my_dict[line[0]] = line[1:]
return my_dict
print(read_dict())
Вы включили свою реализацию в функцию read(). Вам нужно где-то вызвать функцию.
def read():
file1=open("file.txt","r")
dict={}
for line in file1:
line=line.split()
if not line:continue
dict[line[0]]=line[1:]
print(dict)
read()
Попробуй это.