#!/usr/local/bin/python # unpack result of "more x y z > f" # usage: "unmore3.py -i f -v?" or "unmore3.py -v? < f" # uses StreamApp class from "Programming Python" (append D) from apptools import StreamApp marker = ':'*14 class UnmoreApp(StreamApp): # app subclass def run(self): # start/run/stop while 1: line = self.readline() if not line: # end of file? break elif line[:14] != marker: # text line? self.write(line) else: # file prefix fname = self.readline()[:-1] self.message('creating ' + `fname`) self.setOutput(fname) if self.readline()[:14] != marker: self.exit("OOPS!") if __name__ == '__main__': UnmoreApp().main() # make/run