Как вывести всю информацию определенной строки в файле (номер сотрудника, имя, адрес электронной почты и т.д.), Введя только номер сотрудника?

#list #file #dictionary

Вопрос:

Я очень растерян… После создания словаря я должен предложить пользователю ввести номер сотрудника. Затем я должен вывести всю информацию о сотруднике для конкретного сотрудника, а затем запросить у пользователя номер другого сотрудника. Файл со всей информацией называется employee_records_small.csv. Он включает Идентификатор Emp,Префикс имени,Имя,Отчество,Фамилию,Пол,Адрес электронной почты,Номер телефона ,Название места,Округ,Город,Штат,Почтовый индекс,Регион, в таком порядке. Вот что у меня есть до сих пор:

 def bulkEMail(emailList):  print('n*** RESULTS *** n')  for emailInfo in emailList:  print('Email Info: {} {} {}'.format(  emailInfo['e mail'],  emailInfo['first name'],  emailInfo['last name']))  return True  fh = None try:  fh = open('/Users/etaibally/Desktop/employee_records_small.csv', 'r') except Exception as err:  print('file not found', err)  if fh != None:  fh.close()  fh = None  if fh != None:   # Read the header line  line = fh.readline()  line = line.lower()  line = line.replace(' ,', ',').replace(', ', ',')  headerItems = line.split(',')   emailList = {}  dictKeyA = headerItems[0]  line = fh.readline()  while line != '':  lineItems = line.split(',')   # Initialize dictionary variable  emailDict = {}   # For every CSV value in the input line  for pos, value in enumerate(lineItems):  dictKey = headerItems[pos]  emailDict[dictKey] = value   # next line  line = fh.readline()   EmpID = input('Enter ID#: ')  ID = emailDict[EmpID]  print(ID)   # Close file  fh.close()   status = bulkEMail(emailList)  

Комментарии:

1. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы выделить именно то, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.

Ответ №1:

Вы можете попробовать использовать Панд. Фактически, вы можете загрузить свой csv-файл в фрейм данных pandas с помощью команды data = pandas.read_csv(path to file, index_col=column_number_of_employee_number) . Затем вы можете найти конкретные данные о сотруднике, выполнив data[employee_number] следующие действия .

Комментарии:

1. есть ли способ сделать это без Панд? Это для оценки класса

2. В противном случае вы могли бы создать словарь словарей. «Внешний» словарь будет использоваться для выбора сотрудника по его номеру, и значение, связанное с ним, будет списком диктантов (тех, которые вы уже создали). Затем вы можете повторить его, чтобы распечатать все.