Ejercicio
Separador De Archivos
Objectivo
Desarrollar un programa Python para dividir un archivo (de cualquier tipo) en segmentos más pequeños de un tamaño específico. El programa debe aceptar el nombre del archivo y el tamaño del segmento como entradas. Por ejemplo, se puede ejecutar de la siguiente manera:
split myFile.exe 2000
Si el archivo "myFile.exe" tiene un tamaño de 4500 bytes, el programa generaría tres archivos nuevos: "myFile.exe.001" de 2000 bytes, "myFile.exe.002" también de 2000 bytes de longitud y "myFile.exe.003" que contiene los 500 bytes restantes.
Ejemplo de ejercicio de Python
Mostrar código Python
# Python program to divide a file into smaller segments
def split_file(filename, segment_size):
try:
# Open the source file in binary mode
with open(filename, 'rb') as file:
# Get the total size of the file
file_size = len(file.read())
# Calculate the number of segments required
num_segments = (file_size // segment_size) + (1 if file_size % segment_size != 0 else 0)
# Move the file pointer to the beginning again for reading the contents
file.seek(0)
# Split the file into smaller parts
for i in range(1, num_segments + 1):
# Read the segment of the specified size
segment_data = file.read(segment_size)
# Generate the segment filename (e.g., "myFile.exe.001")
segment_filename = f"{filename}.{i:03d}"
# Write the segment data into the new file
with open(segment_filename, 'wb') as segment_file:
segment_file.write(segment_data)
print(f"Created {segment_filename} with {len(segment_data)} bytes.")
except FileNotFoundError:
print(f"Error: The file '{filename}' does not exist.")
except Exception as e:
print(f"Error: {str(e)}")
# Example usage
split_file("myFile.exe", 2000)
Output
Created myFile.exe.001 with 2000 bytes.
Created myFile.exe.002 with 2000 bytes.
Created myFile.exe.003 with 500 bytes.
Código de ejemplo copiado
Comparte este ejercicio de Python