#!/usr/bin/python def read0(file): partial = "" while 1: data = file.read(4096) if data == '': break data = partial + data data = data.split("\0") partial = data.pop() for d in data: yield d if partial: yield partial import sys, tarfile tar = tarfile.TarFile.open(mode="w|", fileobj=sys.stdout) for fn in read0(sys.stdin): print >>sys.stderr, fn tar.add(fn, recursive=False)