Queremos enseñarte la mejor solución que descubrimos on line. Nosotros queremos que te sea útil y si quieres compartir cualquier detalle que nos pueda ayudar a crecer hazlo con total libertad.
Solución:
La mayoría de los archivadores de archivos, como 7-Zip, WinZip y WinRAR, le permiten dividir un archivo en varios archivos. Si la velocidad es importante, puede intentar deshabilitar la parte de compresión del programa.
En sistemas GNU/Linux, puede usar los programas split y cat del paquete coreutils (p. ej. split -b 4294967295 FOO /media/FATDISK/BAR
para dividir FOO en BARaa, BARab, … y cat /media/FATDISK/BAR?? > FOO
para volver a montarlo). Línea de comandos de Mac OS X split
La utilidad funciona de la misma manera.
Si está buscando una solución rápida a esto, consulte las otras respuestas que presentan 7zip
o split
. Esto es más un divertida solución.
Terminé escribiendo un pequeño script de Python 2 para lograr esto.
# Author: Alex Finkel
# Email: [email protected]
# This program splits a large binary file into smaller pieces, and can also
# reassemble them into the original file.
# To split a file, it takes the name of the file, the name of an output
# directory, and a number representing the number of desired pieces.
# To unsplit a file, it takes the name of a directory, and the name of an
# output file.
from sys import exit, argv
from os import path, listdir
def split(file_to_split, output_directory, number_of_chunks):
f = open(file_to_split, 'rb')
assert path.isdir(output_directory)
bytes_per_file = path.getsize(file_to_split)/int(number_of_chunks) + 1
for i in range(1, int(number_of_chunks)+1):
next_file = open(path.join(output_directory, str(i)), 'wb')
next_file.write(f.read(bytes_per_file))
next_file.close()
f.close()
def unsplit(directory_name, output_name):
assert path.isdir(directory_name)
files = map(lambda x: str(x), sorted(map(lambda x: int(x), listdir(directory_name))))
out = open(output_name, 'wb')
for file in files:
f = open(path.join(directory_name, file), 'rb')
out.write(f.read())
f.close()
out.close()
if len(argv) == 4:
split(argv[1], argv[2], argv[3])
elif len(argv) == 3:
unsplit(argv[1], argv[2])
else:
print "python split_large_file.py file_to_split output_directory number_of_chunks"
print "python split_large_file.py directory name_of_output_file"
exit()
Otra opción: usar el split
comando de GNU Coreutils:
split --bytes=4G infile /media/FAT32drive/outprefix
para dividir el archivo en fragmentos de 4 GB y guardar los fragmentos en la unidad de salida.
El archivo original se puede recuperar concatenando los fragmentos (con nombres de archivo ordenados alfabéticamente).
Para obtener información de uso, consulte la split
manual.
Coreutils, incluyendo split
debe instalarse de manera predeterminada en Linux y Mac OS X. En Windows, está disponible desde GnuWin32 o desde Cygwin.
Si posees algún escollo o disposición de desarrollar nuestro artículo eres capaz de añadir un paráfrasis y con deseo lo analizaremos.