Advertisement
nicuf

split text files into many files of maxim 1 MB

Oct 24th, 2023
657
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.29 KB | None | 0 0
  1. import os
  2.  
  3. # Directorul în care se află fișierele txt
  4. directory = r"d:\2022_12_02"
  5.  
  6. # Funcție pentru împărțirea fișierelor în părți mai mici
  7. def split_txt_files(file_path, max_size):
  8.     with open(file_path, 'rb') as file:
  9.         data = file.read()
  10.  
  11.     # Verifică dacă fișierul este deja mai mic sau egal cu dimensiunea maximă dorită
  12.     if len(data) <= max_size:
  13.         return [data]
  14.  
  15.     parts = []
  16.     current_part = b''
  17.  
  18.     for byte in data:
  19.         if len(current_part) + 1 > max_size:
  20.             parts.append(current_part)
  21.             current_part = b''
  22.         current_part += bytes([byte])
  23.  
  24.     if current_part:
  25.         parts.append(current_part)
  26.  
  27.     return parts
  28.  
  29. # Ittrează prin fișierele txt din director
  30. for filename in os.listdir(directory):
  31.     if filename.endswith(".txt"):
  32.         file_path = os.path.join(directory, filename)
  33.         parts = split_txt_files(file_path, 1024 * 1024)  # 1 MB în bytes
  34.  
  35.         for i, part in enumerate(parts):
  36.             part_filename = f"{os.path.splitext(filename)[0]}_part{i+1}.txt"
  37.             part_path = os.path.join(directory, part_filename)
  38.  
  39.             with open(part_path, 'wb') as part_file:
  40.                 part_file.write(part)
  41.  
  42.             print(f"Fișierul {part_filename} a fost creat.")
  43.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement