[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