import pandas as pd #lees het json bestand in (zie functie coverage export in ontwikkelaar console van chrome) print("GEEF DE BESTANDSNAAM INCL HET PAD, bijvoorbeeld: 'C:/...../Coverage-20210422T114305.json' \n") file = input('Hoe heet het bestand (json-formaat)? ') df = pd.read_json(file) print(df) for i in df['url']: print(i) #voer gewenste rij in van op te schonen css bestand print("Haal de gewenste coverage informatie over het css bestand op \n") indexnummer = int(input('Wat is de index van het gewenste css bestand? ')) url = df.iloc[indexnummer,0] print("\n toon de url van het gewenste css bestand") print(url) is_gewenste_bestand = df.loc[:,'url'] == url df = df.loc[is_gewenste_bestand] print("\n toon de gewenste css datavelden") print(df.iloc[0]) text = df.iloc[0,2] print("\n geef variabele text weer") print(text) t = [] for i in text: t.append(i) # wat is de lengte van de lijst tot en met laatste karakter? y = len(t) print("lengte van de lijst in t is: ", y) ranges = df.iloc[0,1] print("\n geef ranges weer \n") print(ranges) # extraheer de eindpunten van elk interval (van css code) en zet deze in nieuwe lijst code_eind # bepaal de startpunten van elk nieuwe interval code_begin = [] code_eind = [0] code_deel = [0] for i in ranges: r_list = list(i.values()) code_begin.append(r_list[0]) code_eind.append(r_list[1]) verschil = r_list[1] - r_list[0] code_deel.append(verschil) code_begin.append(y) print("\n print de lijst met begincodes ") print(code_begin) print("\n print de lijst met eindcodes ") print(code_eind) print("\n print de lijst met deelcodes ") print(code_deel) # maak een nieuwe lijst aan voor de gebruikte en niet-gebruikte (later gebruikte) code css = [] nietcss = [] # functie om de code, karakter voor karakter, voor het betreffende interval in de lijst css te zetten def codetekst(a,b): while a < code_eind[b]: css.append(t[a]) a += 1 return css def nietcodetekst(c,d): while c < code_begin[d]: nietcss.append(t[c]) c += 1 return nietcss # bepaal voor alle intervallen in het css bestand de gewenste code (via functie codetekst) i = 0 while i < (len(code_begin)): c = code_eind[i] print(c) d = i print(d) nietcodetekst(c,d) i += 1 print("\n print de lijst met niet-css code") print(nietcss) j = 0 while j < (len(code_eind) - 1): b = j + 1 a = code_eind[b] - code_deel[b] print(a) print(b) codetekst(a,b) j += 1 print("\n print de lijst met css code") print(css) # bepaal het aantal karakters in de opgebouwde css en niet-css lijst l = len(css) m = len(nietcss) # bepaal of alle code gekopieerd is print("CONTROLE OF CODE VOLLEDIG GEKOPIEERD IS") if ((l + m) != y): print("FOUT: code css en code niet-css is niet bij elkaar gelijk aan totale code") print("lengte css + niet-css: ", (l + m)) print("lengte totale code: ", len(t)) else: print("OK") # breng alle datavelden terug tot een dataveld css[0 : l] = [''.join(css[0 : l])] print("\n print de tot 1 index teruggebrachte css code") print(css) # breng alle datavelden terug tot een dataveld nietcss[0 : m] = [''.join(nietcss[0 : m])] print("\n print de tot 1 index teruggebrachte niet-css code") print(nietcss) # sla de lijst op in een nieuw css bestand print("\n GEEF DE BESTANDSNAAM INCL HET PAD, bijvoorbeeld: 'C:/.../code.css' \n") naam = input("\n geef de naam van het bestand op inclusief pad: ") bestand = open(naam,'w') for element in css: bestand.write(element) bestand.write('\n') bestand.close() # schrijf de niet-code weg als css bestand print("\n GEEF DE BESTANDSNAAM INCL HET PAD voor de niet-css code, bijvoorbeeld: 'C:/.../niet-code.css' \n") naam_niet_css = input("\n geef de naam van het bestand op inclusief pad: ") bestand = open(naam_niet_css,'w') for element in nietcss: bestand.write(element) bestand.write('\n') bestand.close()