Advertisement
Alfh

vertaa.py

Mar 11th, 2024 (edited)
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.86 KB | None | 0 0
  1. #Tällä voi verrata kahta eri tiedostolistausta keskenään. Hidas kuin mikä. Tarkoitettu MBnetin tiedostolistan vertailuun.
  2.  
  3. def lue_tiedosto(tiedostonimi):
  4. with open(tiedostonimi, "r", encoding="utf-8") as tiedosto:
  5. return tiedosto.readlines()
  6.  
  7. def hae_tiedostonimi(rivi):
  8. tiedostonimi = ""
  9. osat = rivi.split()
  10. for sana in osat:
  11. if '.' in sana and len(sana) > 4 and len(sana) <= 15 and len(sana.split('.')[-1]) >= 3: # Tarkistetaan, sisältääkö sana pisteen ja kolme muuta merkkiä sen jälkeen
  12. tiedostonimi = sana
  13. break
  14. # Poistetaan heittomerkit
  15. return tiedostonimi.strip(",").strip("'").strip('"').lower()
  16.  
  17. def laske_tiedostojen_lukumaara(lista):
  18. return len([tiedosto for tiedosto in lista if hae_tiedostonimi(tiedosto) != ""])
  19.  
  20. def etsi_yhteiset_ja_epayhteiset_tiedostot(lista1, lista2):
  21. yhteiset = []
  22. hutit = []
  23. for tiedosto2 in lista2:
  24. nimi2 = hae_tiedostonimi(tiedosto2)
  25. loytyi = False
  26. for tiedosto1 in lista1:
  27. nimi1 = hae_tiedostonimi(tiedosto1)
  28. if nimi1 == nimi2 and nimi1 != "" and nimi2 != "":
  29. yhteiset.append(nimi1)
  30. loytyi = True
  31. break
  32. if not loytyi and nimi2 != "":
  33. hutit.append(nimi2)
  34. return yhteiset, hutit
  35.  
  36. if __name__ == "__main__":
  37. print("Työstää.. \n")
  38.  
  39. #tiedosto1 = "mbnet_files_09-01-2005.txt"
  40. #tiedosto1 = "mbnet_files_09-01-2005_dos.txt"
  41. tiedosto1 = "mbfiles_1996_utf-8_2.txt"
  42. #tiedosto1 = "mbfiles_1996_dos.txt"
  43.  
  44. tiedosto2 = "94-95-96.txt"
  45.  
  46. lista1 = lue_tiedosto(tiedosto1)
  47. lista2 = lue_tiedosto(tiedosto2)
  48.  
  49. lukumaara1 = laske_tiedostojen_lukumaara(lista1)
  50. lukumaara2 = laske_tiedostojen_lukumaara(lista2)
  51.  
  52. yhteiset_tiedostot, hutit = etsi_yhteiset_ja_epayhteiset_tiedostot(lista1, lista2)
  53.  
  54. #print("Yhteiset tiedostot:")
  55. #for tiedosto in yhteiset_tiedostot:
  56. # print(tiedosto)
  57.  
  58. #print("Hutit:")
  59. #for tiedosto in hutit:
  60. # print(tiedosto)
  61.  
  62. with open("osumat.txt", "w", encoding="utf-8") as yhteiset_tiedostot_tiedosto:
  63. for tiedosto in yhteiset_tiedostot:
  64. yhteiset_tiedostot_tiedosto.write(tiedosto)
  65. yhteiset_tiedostot_tiedosto.write('\n')
  66.  
  67. with open("hutit.txt", "w", encoding="utf-8") as hutit_tiedosto:
  68. for tiedosto in hutit:
  69. hutit_tiedosto.write(tiedosto)
  70. hutit_tiedosto.write('\n')
  71.  
  72. print(f"Tiedostoja {tiedosto1}:ssa: {laske_tiedostojen_lukumaara(lista1)}")
  73. print(f"Tiedostoja {tiedosto2}:ssä: {laske_tiedostojen_lukumaara(lista2)}")
  74. print(f"Löydetyt yhteensä: {len(yhteiset_tiedostot)}, tallennettu tiedostoon osumat.txt")
  75. print(f"Hutit yhteensä: {len(hutit)}, tallennettu tiedostoon hutit.txt")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement