nicuf

mix sentences random

Feb 2nd, 2022 (edited)
388
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.16 KB | None | 0 0
  1. Explanation:
  2.  
  3. ROMANIAN: https://neculaifantanaru.com/python-how-to-mix-lines-or-how-to-shuffle-sentences-random.html
  4. ENGLISH: https://neculaifantanaru.com/en/python-how-to-mix-lines-or-how-to-shuffle-sentences-random.html
  5. ---------
  6.  
  7. import nltk
  8. from nltk import tokenize
  9. nltk.download('punkt')
  10. import os
  11. import random
  12.  
  13. def read_text_from_file(file_path):
  14.     """
  15.    Aceasta functie returneaza continutul unui fisier.
  16.    file_path: calea catre fisierul din care vrei sa citesti
  17.    """
  18.     with open(file_path, encoding='utf8') as f:
  19.         text = f.read()
  20.         return text
  21.  
  22. def write_to_file(text, file_path):
  23.     """
  24.    Aceasta functie scrie un text intr-un fisier.
  25.    text: textul pe care vrei sa il scrii
  26.    file_path: calea catre fisierul in care vrei sa scrii
  27.    """
  28.     with open(file_path, 'wb') as f:
  29.         f.write(text.encode('utf8', 'ignore'))
  30.  
  31. def amesteca_propozitii(cale_fisier_txt):
  32.     # citeste textul dintr-un fisier txt
  33.     text = read_text_from_file(cale_fisier_txt)
  34.     # extrage proprozitiile din text
  35.     sentences = tokenize.sent_tokenize(text)
  36.     # amesteca propozitiile din text
  37.     random.shuffle(sentences)
  38.     # returneaza propozitiile amestecate si care au fost alaturate printr-un spatiu
  39.     return " ".join(sentences)
  40.  
  41. def amesteca_propozitii_fisiere(cale_folder_txt, cale_folder_txt_amestecat):
  42.     """
  43.    Functia itereaza printr-un folder care contine fisiere txt si creeaza noi fisiere txt cu proprozitiile amestecate
  44.    """
  45.     count = 0
  46.     for f in os.listdir(cale_folder_txt):
  47.             if f.endswith('txt'):
  48.                 cale_fisier_txt = cale_folder_txt + "\\" + f
  49.                 text_amestecat = amesteca_propozitii(cale_fisier_txt)
  50.                 file_path = cale_folder_txt_amestecat + "\\" + f
  51.                 write_to_file(text_amestecat, file_path)
  52.                 count += 1
  53.             else:
  54.                 continue
  55.     print("Numarul de fisiere modificate: ", count)
  56.  
  57.  
  58. if __name__ == '__main__':
  59.     # aici iti modifici directorul sursa si destinatie in functie de preferinte
  60.     amesteca_propozitii_fisiere(
  61.         "c:\\Folder1",
  62.         "c:\\Folder1\\fisiere_amestecate"
  63.     )
Add Comment
Please, Sign In to add comment