[Proto-o-matic.pl]

Markus markus@mania.homelinux.net
Gio 19 Gen 2006 23:15:36 CET


Joe Oblivian wrote:

>In effetti la versione perl è proprio più bella...
>
>peppe
>  
>
Quello non era python... quello era un tentativo di stare dietro ad un 
altro linguaggio... questo dovrebbe rendere un po' più l'idea (cmq uno 
script come questo sarebbe in effetti un campo tipicamente perliano). Ma 
proprio non mi va giù il perl...

M4rkus


-------------- parte successiva --------------
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
pyth-o-matic, ver 0.2a - Perchè si può sempre fare di meglio :-P
"""
import os
import re

class myApp:

    srcdir = os.path.join( '.', 'data' )
    tmpdir = os.path.join( '.', 'tmp' )
    tgtdir = os.path.join( '.', 'dest' )
    pattern = re.compile( '(\d{6}-\d{4}-\d{5})-(\d+).tif' )

    def do_cmd(self, s):
        print "running %s..." % (s),
        res = os.system(">/dev/null 2>&1 %s" % s)
        
        if (res):
            print "FAIL (exit code: %d)" % ( s, res )
            return False
        else:
            print "ok"
            return True
        
    def run(self):
        d = dict()

        for (match,filename) in [ (re.match( self.pattern, x ), x) for x in os.listdir(self.srcdir) ]:
            if match:
                (group, prog) = match.groups()
                if not group in d:
                  d[group] = list()

                basename = "-".join( (group, prog) )
                src = os.path.join( self.srcdir, basename) + ".tif"
                tgt = os.path.join( self.tmpdir, basename) + ".pdf"
                cmd = "tiff2pdf %s >%s" % (src,tgt)
                if self.do_cmd(cmd):
                    d[group].append(tgt)
            else:
                print "Warning: file '%s' does not follow naming standards" % ( filename )
                
        for key in d.keys():

            tmpfiles = " ".join( d[key] )
            tgtpath  = os.path.join( self.tgtdir, key ) + ".pdf"
            cmd = "gs -q -sPAPERSIZE=a4 -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=%s %s" % (tgtpath, tmpfiles)
            self.do_cmd(cmd)

            cmd = "rm %s" % (tmpfiles)
            self.do_cmd(cmd)

        print "Done"
            
if __name__ == '__main__':

    print __doc__
    myApp().run()


Maggiori informazioni sulla lista palermo