Skip to content
Snippets Groups Projects
verpflegungsklassen.py 3.3 KiB
Newer Older
  • Learn to ignore specific revisions
  • Nina Brolich's avatar
    Nina Brolich committed
    import csv
    import os
    from bs4 import BeautifulSoup
    
    
    def crawlerXML(file_path):
        with open(file_path, mode='r', encoding='utf-8') as file:
            content = file.read()
            file.close()
        doc = BeautifulSoup(content, "xml")
        return doc
    
    
    verpflegung = dict()
    
    def fill_dict(kaufbeuren=True):
        if kaufbeuren:
            filename = r"C:\Users\Nina\FAUbox\IdeaProjects\patientenbriefe\tables\Kaufbeuren-bearbeitet - Kaufbeuren_bearb.csv"
        else:
            filename = r"C:\Users\Nina\FAUbox\IdeaProjects\patientenbriefe\tables\copadocs_patienten_westfalen - Tabelle1.csv"
    
        with open(filename, 'r', encoding='utf-8') as csvfile:
                datareader = csv.reader(csvfile)
                first = True
                if not kaufbeuren:
                    counter = 0
                for row in datareader:
                    if kaufbeuren and first:
                        first = False
                        continue
                    elif not kaufbeuren and counter < 6:
                        counter += 1
                        continue
                    else:
                        if kaufbeuren:
                            verpflegungsklasse = row[28]
                            verpflegungsklasse = "k.A" if verpflegungsklasse == "" else verpflegungsklasse
                            aktennummer = "kfb" + row[0] #.split(' ')[0]
                            aktennummer = aktennummer.replace(' ', '')
                            verpflegung[aktennummer] = verpflegungsklasse
                        else:
                            kuerzel = row[0][:3].lower()
                            kuerzel = kuerzel.replace('ü', 'u')
                            #kuerzel.replace('ä', 'a')
                            kuerzel = "mrs" if kuerzel == "mar" else kuerzel
                            aktennummer = kuerzel + row[1]
                            verpflegungsklasse = row[25]
                            aktennummer = aktennummer.replace(' ', '')
                            verpflegung[aktennummer] = verpflegungsklasse
    
    fill_dict(kaufbeuren=True)
    fill_dict(kaufbeuren=False)
    
    rootdir = r"C:\Users\Nina\Documents\GitHub\copadocs\data"
    #cwd = os.getcwd()
    #rootdir = os.path.join(cwd, "teis")
    # check directory names in corpus
    for file in os.listdir(rootdir):
        d = os.path.join(rootdir, file)
        if os.path.isdir(d):
            written = False
            for subfile in os.listdir(d):
                kuerzel = subfile[:3]
                xmlfile = os.path.join(d, subfile)
                if not os.path.isdir(xmlfile):
                    if subfile[-3:] != "xml":
                        continue
                    print(xmlfile)
                    soup = crawlerXML(xmlfile)
                    aktennummer = kuerzel + soup.find("idno").text
                    aktennummer = aktennummer.replace(' ', '')
                    klasse = verpflegung[aktennummer]
                    state = soup.particDesc.state
                    for p in state.find_all("p"):
                        if p.text.startswith("Verpflegungsklasse"):
                            p.decompose()
                    verpflegungs_tag = soup.new_tag("p")
                    verpflegungs_tag.insert(0, "Verpflegungsklasse: " + klasse)
    
                    state.insert(6, verpflegungs_tag)
    
                    text = str(soup)
    
                    with open(xmlfile, mode='w', encoding='utf-8') as file:
                        # file.write(str(doc.prettify(formatter="none")))
                        file.write(text)
                        file.close()