Во-первых, цель состоит в том, чтобы отличать только имена от строки, состоящей из корейских имен, английских имен, специальных символов (-, *, запятая), пробелов и т. Д., И оставить только одно, если имя дублируется.
Итак, на данный момент я взял текстовый файл и преобразовал его в строку, исключив ненужные специальные символы.
import re
path = 'E:\Data Science\Personal_Project\Church\Data\original.txt'
def open_text(path):
with open(path, "r", encoding='euc-kr') as f:
text = f.readlines()
string = ''.join(text)
unicode_line = string.translate({ord(c): None for c in '.;*\n'})
cleaned = re.split('-|', unicode_line)
print(unicode_line, type(cleaned))
return(cleaned)
Вот вопрос.Что я хочу добавить к функции выше
1) Если перед пунктирной линией есть буква (например, «Посещаемость ---»), я хочу удалить текст перед ней (например,«Посещаемость»), прежде чем разбить его на тире.
2) Или я хотел бы составить список - [Посещаемость, Отъезд, Отпуск] - и я хотел бы удалить слова, которыевключены в список.
Буду признателен, если вы подскажете лучший или более питонский способ сделать это !!
Для вашего удобства я добавлю образецтекст.
Status of January 20th
** Attendance
-----------
John Smith, John Smith, Bob Smith, Mike Smith, Jane Jones, Daniel Lee, Dong Jones, Jeannie Jones, Jessica Yi, McAleer Chung, Shu K Smith, Song Kim, Steve Carlos, Bob Smith
** Absent
---------
holiday, unauthorized, unpaid leave, emergency
-------------------------------------------------------------------------------------------
Brown Williams, Paul Garcia
Кроме того, вот мой желаемый вывод только с дублирующимися именами.Если вы видите выше, есть два Джона Смита и два Боба Смита.И наконец, было бы здорово, если бы я мог получить его в алфавитном порядке.
Output:
John Smith, Bob Smith, Mike Smith, Jane Jones, Daniel Lee, Dong Jones, Jeannie Jones, Jessica Yi, McAleer Chung, Shu K Smith, Song Kim, Steve Carlos, Brown Williams, Paul Garcia