Skip to main content

Python : split any file (binary) to different pieces and join them

This python program takes an input file and then splits it into different smaller chunks. Next it can collect all the different chunks and join it to get the original file.
--------------------------------------------------------


# define the function to split the file into smaller chunks
def splitFile(inputFile,chunkSize):

#read the contents of the file
f = open(inputFile, 'rb')
data = f.read() # read the entire content of the file
f.close()

# get the length of data, ie size of the input file in bytes
bytes = len(data)

#calculate the number of chunks to be created
noOfChunks= bytes/chunkSize
if(bytes%chunkSize):
noOfChunks+=1

#create a info.txt file for writing metadata
f = open('info.txt', 'w')
f.write(inputFile+','+'chunk,'+str(noOfChunks)+','+str(chunkSize))
f.close()



chunkNames = []
for i in range(0, bytes+1, chunkSize):
fn1 = "chunk%s" % i
chunkNames.append(fn1)
f = open(fn1, 'wb')
f.write(data[i:i+ chunkSize])
f.close()



#define the function to join the chunks of files into a single file

def joinFiles(fileName,noOfChunks,chunkSize):

dataList = []
for i in range(0,noOfChunks,1):
chunkNum=i * chunkSize
chunkName = fileName+'%s'%chunkNum
f = open(chunkName, 'rb')
dataList.append(f.read())
f.close()
f = open(fileName, 'wb')
for data in dataList:
f.write(data)
f.close()


# call the file splitting function

splitFile('1.mkv',110000000)

#call the function to join the splitted files
joinFiles('chunk',7,110000000)
---------------------------------------------------



Comments

I needed to alter it a bit to get it working - it would write to the file with .joinFiles() since it was closed. This one worked for me in Python2.7:
https://gist.github.com/mattiasostmar/7883550
chandu said…
Modified it a bit more and separated the file into splitter and joiner python files.
https://github.com/csmunuku/file_splitter_joiner

Popular posts from this blog

calculate hop count in a graph using python

The following program finds out the hop count of the nodes in a connected network. Hop Count means the number of point to point connections in a graph of network. For example, in the graph shown below the hop count from node a to node b is one, node b to node c is two, etc. This program assumes the graph given above. usage : getHopCount(dictNeigh, node1,node2) Where:   dictNeigh : dictionary of list of neighbor of each node in the network node1 and node2 are the nodes for which hop count is calculated by the program Exception: if the nodes are not connected then it returns Zero import copy dictNeigh = dict() # dictNeigh defines the neighbors dictNeigh['a'] = ['b','c','d'] # neighbors of 'a' dictNeigh['b'] = ['a']# neighbors of 'b' dictNeigh['c'] = ['a','d'] dictNeigh['d'] = ['a','c','e'] dictNeigh['e'] = ['d','f'] dictN...

My first step to PHP-MySQL

This is a very basic php-mysql tutorial and I will be trying to make it as simple as possible, since I it to be helpful for the first timers. This is the part of program when I was starting to learn Php-mysql. I was just trying to create a html form, get some data filled and then save the data in the database. And also displaying those data back. It was a messy code but I felt glad enough since it was a tangible piece of my learning process. Since then, if anyone asked me some help regarding the startup, i used to provide this code for them to play with. And I thought it will be a good idea if I can share it. a simple html form <form name="form1" method="post" action="target.php"> <p class="style1" align="left"> <label>Enter your details:</label> </p> <table width="421" bgcolor="#cccccc"> <tbody><tr> <td width="195">Name: <input nam...