2015-11-04 4 views
0

Итак, у меня есть текстовый файл, который я составил с именем человека, за которым следует запятая, а затем место, где они могли бы жить. Да я знаю, что его случайно, но мне нужен способ, чтобы понять это :)Чтение данных из файлов с пользовательского ввода

Так вот текстовый файл («namesAndPlaces.txt»):

Боб, Бангкок
Ellie, Лондон
Энтони, Пекин
Майкл, Бостон
Фред, Техас
Alisha, Калифорния

Так что я хочу, чтобы пользователь мог ввести имя в программу, а затем программа смотрит на текстовый файл, чтобы увидеть, где они Li а затем распечатывает его пользователю.

Как это сделать? Благодаря Майкл

+1

Возможный дубликат [Python: поиск файла для строка и распечатать полную строку] (http://stackoverflow.com/questions/23942691/python-search-file-for-a-string-and-print-the-fullline) –

+1

Можете ли вы показать свой код для этого ? Укажите, какие проблемы вы испытываете. Показывать сообщения об ошибках, которые вы получили в своей последней попытке. Также, пожалуйста, прочитайте [this] (http://stackoverflow.com/help/mcve) – idjaw

ответ

1

Я хотел бы сделать это следующим образом:

text_file = open('pathtoFile', 'r').read() 
text = text_file.split() 

#turn the text into a dictionary 
names_dic = [] 
for x in text: 
    x = x.split(',') 
    names_dic.append(x) 

names_dic = dict(names_dic) 

print names_dic #for testing 

# asking a user to enter a name 
name = "not_in_dic" 
while name not in names_dic: 
    name = raw_input("Enter the name? ") 
    print name, "lives in ", names_dic[name] 
+0

Вы также можете добавить оператор if, если имя не указано в name_dic print «имя не было найдено» –

0

Немного более вещий способ сделать то же самое Анета предложенное

 
with open(filename, 'r') as source: 
    text = source.read() 
    place_to_names = dict([line.split(r',') for line in text.split()]) 

while True: 
    name = raw_input('Enter a name:') 
    print("%s lives in %s" % (name, places_to_names[name])) 
Смежные вопросы