Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Explanation:
- ROMANIAN: https://neculaifantanaru.com/python-how-to-mix-lines-or-how-to-shuffle-sentences-random.html
- ENGLISH: https://neculaifantanaru.com/en/python-how-to-mix-lines-or-how-to-shuffle-sentences-random.html
- ---------
- import nltk
- from nltk import tokenize
- nltk.download('punkt')
- import os
- import random
- def read_text_from_file(file_path):
- """
- Aceasta functie returneaza continutul unui fisier.
- file_path: calea catre fisierul din care vrei sa citesti
- """
- with open(file_path, encoding='utf8') as f:
- text = f.read()
- return text
- def write_to_file(text, file_path):
- """
- Aceasta functie scrie un text intr-un fisier.
- text: textul pe care vrei sa il scrii
- file_path: calea catre fisierul in care vrei sa scrii
- """
- with open(file_path, 'wb') as f:
- f.write(text.encode('utf8', 'ignore'))
- def amesteca_propozitii(cale_fisier_txt):
- # citeste textul dintr-un fisier txt
- text = read_text_from_file(cale_fisier_txt)
- # extrage proprozitiile din text
- sentences = tokenize.sent_tokenize(text)
- # amesteca propozitiile din text
- random.shuffle(sentences)
- # returneaza propozitiile amestecate si care au fost alaturate printr-un spatiu
- return " ".join(sentences)
- def amesteca_propozitii_fisiere(cale_folder_txt, cale_folder_txt_amestecat):
- """
- Functia itereaza printr-un folder care contine fisiere txt si creeaza noi fisiere txt cu proprozitiile amestecate
- """
- count = 0
- for f in os.listdir(cale_folder_txt):
- if f.endswith('txt'):
- cale_fisier_txt = cale_folder_txt + "\\" + f
- text_amestecat = amesteca_propozitii(cale_fisier_txt)
- file_path = cale_folder_txt_amestecat + "\\" + f
- write_to_file(text_amestecat, file_path)
- count += 1
- else:
- continue
- print("Numarul de fisiere modificate: ", count)
- if __name__ == '__main__':
- # aici iti modifici directorul sursa si destinatie in functie de preferinte
- amesteca_propozitii_fisiere(
- "c:\\Folder1",
- "c:\\Folder1\\fisiere_amestecate"
- )
Add Comment
Please, Sign In to add comment