2017-11-01 3 views
0

私は履歴書から合格する年を抽出するロジックを書いています。度数リストの検索を使用して度を抽出します。 CV内のすべての度を持った後、私はライン分割し、各ラインのチェックを行うhttps://github.com/karimkhanp/resumeparser履歴書から渡す年を抽出する

- ここ

は、テキストとコードのリンクです。任意の行に任意の次数が存在する場合は、同じ行に19または20で始まる4桁の数字があるかどうかを確認します。それを1年と考えてください。

ロジックコード:

def get_passingyear(self, text, education): 
    text_lines = text.splitlines() 
    passing_year = [] 
    for line in text_lines: 
     for degree in education: 
      if degree in line: 
       year = re.findall('\b(19|20)\d{2}\b', text) 
       p_year = {} 
       if len(year) > 1: 
        year = '-'.join(year) 
        p_year[degree]= year 
        break 
       else: 
        p_year[degree]= year 
        break 

は、このコードを書くための任意のより良い方法はありますか?度の年が取得された場合は、ループを終了するためにbreakを追加しました。

私はそれはあなたがEAFP原理を使用して、datetimeモジュールでそれを試してみることができ、同じ

+2

投稿にリンクを投稿したり共有した方が良いでしょうテキスト – RomanPerekhrest

+0

私はリンクを共有@RomanPerekhrest – honeyboney

+0

は、任意のファイルの束ではなく、具体的なファイルへのリンクを共有します – RomanPerekhrest

答えて

0

のための任意のより良いロジックがあり感謝:

import datetime 

.... 

     if degree in line: 
      try: 
       year = re.findall('\b(19|20)\d{2}\b', text) 
       # Try to make a date out of it 
       datetime.date(year=int(year)) 
      except TypeError: 
       # if it is not a date, you can treat it here 
       pass 

      .... 

あなたにリスクはありません。この方法 あなたのすべての日付がそれらのファイルのパターンを欺くならば、datetime moduleのstrptimeを使用してこのパターンから日付を取得することができます

関連する問題