def getOriginal(self, outputfile=""): orig = self.getMetaData().GetOriginal() input = open(self.filename, "rb") input.seek(0, 2) input_length = input.tell() input.seek(0) print input.tell() com_start = input_length output = open(outputfile, "wb") for item in self.items: if item[1] == "COM": com_start = item[0] index = self.items.index(item) com_end = self.items[index + 1][0] input.seek(0) break # write until old comment output.write(input.read(com_start)) if len(orig) > 0: output.write("\xFF\xFE") output.write(reverse(ol16(len(orig)))) output.write(orig) input.seek(com_end) # write file footer while input.tell() < input_length: output.write(input.read(1)) output.close() input.close()
def writeMetaData(self, data, outputfile): index = -1 for item in self.items: if item[1] == "SOF0": index = self.items.index(item) if index < 0: raise SyntaxError("wrong filetype") if self.items[index - 1][1] == "COM": # update value _end = self.items[index - 1][0] print "update comment" input = open(self.filename, "rb") input.seek(self.items[index - 1][0] + 4) data = LZAMetadata(data) data.addOriginal( input.read(self.items[index][0] - self.items[index - 1][0] - 4)) input.close() else: # insert value _end = self.items[index][0] input = open(self.filename, "rb") output = open(outputfile, "wb") output.write(input.read(_end)) output.write("\xFF\xFE") output.write(reverse(ol16(len(str(data))))) output.write(str(data)) input.seek(self.items[index][0]) output.write(input.read(self.src_length - input.tell())) input.close() output.close()
def writeMetaData(self, data, outputfile): index = -1 for item in self.items: if item[1] == "SOF0": index = self.items.index(item) if index < 0: raise SyntaxError("wrong filetype") if self.items[index - 1][1] == "COM": # update value _end = self.items[index - 1][0] print "update comment" input = open(self.filename, "rb") input.seek(self.items[index - 1][0] + 4) data = LZAMetadata(data) data.addOriginal(input.read(self.items[index][0] - self.items[index - 1][0] - 4)) input.close() else: # insert value _end = self.items[index][0] input = open(self.filename, "rb") output = open(outputfile, "wb") output.write(input.read(_end)) output.write("\xFF\xFE") output.write(reverse(ol16(len(str(data))))) output.write(str(data)) input.seek(self.items[index][0]) output.write(input.read(self.src_length - input.tell())) input.close() output.close()