Πρέπει να διερέσεις το μέγεθος το αρχείου σου με τον αριθμό τον parts που θέλεις να διαμερήσεις
το αρχείο έτσι ώστε να βρεις από πόσα bytes θα αποτελείτε το κάθε αρχείο σου. Στην συνέχεια απλός
διαβάζεις κάθε φόρα τόσα bytes απο το αρχείο σου και τα γράφεις σε άλλα αρχείο.
Ένα παράδειγμα:
import os, sys
#Όνομα αρχείου
fileName = input("Give the file name: ")
#Σε πόσα αρχεία θα το σπάσω
divider = int(input("Give the divide number: "))
#Μέγεθος αρχείου
fileSize = os.path.getsize(fileName)
#Πόσα bytes πρέπει να έχει το κάθε αρχείο
bytes_per_file = fileSize // divider
#Το αρχείο δεν μπορεί να διαμεριστεί σε divider μέροι.
if bytes_per_file == 0:
print("The file is very small and can't be divited to",divider,"parts.")
sys.exit()
counter = 1
read_file = open(fileName, 'rb')
while True:
#Διάβασε τα επόμενα bytes από το αρχείο
max_bytes = read_file.read(bytes_per_file)
#Εάν αυτό είναι αληθές τότε έφτασα στο τέλος του αρχείου
#και δεν χρειάζεται να κάνω τίποτα πλέον.
if not max_bytes:
break
#Άνοιξε ένα νέο αρχείο.
write_file = open(str(counter)+".fl", 'wb')
#Γράψε τα bytes.
write_file.write(max_bytes)
#Κλείσε το αρχείο.
write_file.close()
#Αύξησε τον counter.
counter += 1
read_file.close()
print("The file", fileName, "divided successfuly!")
Ότι δεν καταλαβαίνεις ρωτάς
Και αν θέλεις μπορείς να κάνεις και ένα άλλο πρόγραμμα που να παίρνει ως είσοδο αυτά τα αρχεία
και να ξανά δημιουργεί το αρχικό αρχείο απλός ενώνοντας τα bytes σε ένα και μόνο αρχείο. Προσοχή ότι αυτό το νέο αρχείο θα πρέπει να έχει την ίδια κατάληξη πχ .exe όπως ήταν αρχικά.