[Python] trovare l' encoding di un file
Ciao, come faccio a trovare l'encoding di un file che sto eseguendo? Il file comincia con:: # coding: utf-8' dentro quel file è definita una stringa che devo passare come description a optparse.OptionParser(opt, description=...). Posso in questo caso usare:: unicode(..., encoding='utf-8'), ma vorrei fare una procedure lievemente più generica prendendo l'encoding dal file stesso. E` possibile? sandro *:-) PS: se importo pango, tutto funziona correttamente, anche senza forzare l'encoding. -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy #!/usr/bin/python # coding: utf-8 """ Questo è un esempio di ciò che voglio """ #import pango import optparse p = optparse.OptionParser('', description=__doc__) p.print_help() ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] trovare l' encoding di un file
On Wed, 10 Jun 2009 11:28:53 +0200, Alessandro Dentella wrote: > Ciao, > > come faccio a trovare l'encoding di un file che sto eseguendo? Il file > comincia con:: > > # coding: utf-8' > > dentro quel file è definita una stringa che devo passare come > description > a optparse.OptionParser(opt, description=...). Posso in questo caso > usare:: > > unicode(..., encoding='utf-8'), ma vorrei fare una procedure lievemente > > più generica prendendo l'encoding dal file stesso. E` possibile? Spero di aver capito bene la faccenda, non se sono sicuro. Io credo che l'encoding del file serva solo a definire in che encoding sono codificate le costanti unicode nei sorgenti. Perché usi esplicitamente il costruttore unicode? Secondo me basta: desc=u"àè€" optparse.OptionParser(opt, description=desc) (se poi però qualcuno ha la console impostata a latin1, non so se "script.py --help" esploda o no: immagino dipenda da optparse, ma probabilmente se la cava). -- Daniele Varrazzo - Develer S.r.l. http://www.develer.com ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] trovare l' encoding di un file
2009/6/10 Alessandro Dentella : > ma vorrei fare una procedure lievemente > > piů generica prendendo l'encoding dal file stesso. E` possibile? Puoi provare a usare Chardet: http://chardet.feedparser.org/ ciao! -- Lawrence Oluyede [eng] http://oluyede.org - http://twitter.com/lawrenceoluyede [ita] http://neropercaso.it - http://twitter.com/rhymes [flickr] http://www.flickr.com/photos/rhymes ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] trovare l' encoding di un file
2009/6/10 Alessandro Dentella > Ciao, > come faccio a trovare l'encoding di un file che sto eseguendo? Il file > comincia con:: > > # coding: utf-8' > dentro quel file č definita una stringa che devo passare come description > a optparse.OptionParser(opt, description=...). Posso in questo caso > usare:: unicode(..., encoding='utf-8'), ma vorrei fare una procedure lievemente Beh, a me da errore comunque cosi`. Io ho dovuto fare cosi`: p = optparse.OptionParser('', description=unicode(__doc__, encoding='utf8', errors='ignore')) > piů generica prendendo l'encoding dal file stesso. E` possibile? Ti confermo quello che ha detto Daniele, a me cosi` ha funzionato: #!/usr/bin/python # coding: utf-8 u""" Questo è esempio di ciò voglio """ #import pango import optparse p = optparse.OptionParser('', description=__doc__) p.print_help() Ho aggiunto solo la "u" prima della docstring. Ciao. Marco. -- http://thinkcode.tv - Prossimamente su questi schermi http://beri.it - Blog di una testina di vitello http://stacktrace.it - Aperiodico di resistenza informatica ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] trovare l' encoding di un file
On Wed, Jun 10, 2009 at 11:50:10AM +0200, Daniele Varrazzo wrote: > On Wed, 10 Jun 2009 11:28:53 +0200, Alessandro Dentella > wrote: > > Ciao, > > > > come faccio a trovare l'encoding di un file che sto eseguendo? Il file > > comincia con:: > > > > # coding: utf-8' > > > > dentro quel file è definita una stringa che devo passare come > > description > > a optparse.OptionParser(opt, description=...). Posso in questo caso > > usare:: > > > > unicode(..., encoding='utf-8'), ma vorrei fare una procedure > lievemente > > > > più generica prendendo l'encoding dal file stesso. E` possibile? > > Spero di aver capito bene la faccenda, non se sono sicuro. > > Io credo che l'encoding del file serva solo a definire in che encoding sono > codificate le costanti unicode nei sorgenti. Perché usi esplicitamente il > costruttore unicode? Secondo me basta: > > desc=u"àè€" > optparse.OptionParser(opt, description=desc) > Effettivamente così funziona l'esempio, purtroppo nel caso reale mi solleva altri problemi (che sembrano completamente scorrelati), per cui quando avevo fatto la prova, vedendo l'errore avevo cortocircuitato il cervello. Fra poco indago meglio cosa mi sta dicendo l'errore. grazie sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] trovare l' encoding di un file
> Effettivamente così funziona l'esempio, purtroppo nel caso reale mi solleva > altri problemi (che sembrano completamente scorrelati), per cui quando avevo > fatto la prova, vedendo l'errore avevo cortocircuitato il cervello. Fra > poco indago meglio cosa mi sta dicendo l'errore. trovato. Faccio un passo indietro. Sto aggiungendo la possibilità di scrivere un testo descrittivo alla ricetta di Simionato 'optionparse' [1]. In quella ricetta, le opzioni da passare al parser sono nella docstring, che viene 'parsata' con una regexp. Se la docstring è unicode anche i 'pezzetti' passati a parse.add_options, saranno unicode (alla riga 65): p.add_option(short.strip(),long.strip(), action = action, help = help.strip()) e questo non viene digerito da optparse. Quindi avevo pensato di fare diventare unicode solo le help string e la description, ma in effetti posso semplicemente fare ridiventare 'ascii' le opzioni... vedo che vanno ugualmente bene str() ed .encode('ascii'). sandro *:-) [1] http://code.activestate.com/recipes/278844/ ps: allego la versione finale... -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy # coding: utf-8 """\ :Author: M. Simionato :Date: April 2004 :Title: A much simplified interface to optparse. You should use optionparse in your scripts as follows. First, write a module level docstring containing something like this (this is just an example): '''usage: %prog files [options] -d, --delete: delete all files -e, --erase = ERASE: erase the given file''' Then write a main program of this kind: # sketch of a script to delete files if __name__=='__main__': import optionparse option,args=optionparse.parse(__doc__) if not args and not option: optionparse.exit() elif option.delete: print "Delete all files" elif option.erase: print "Delete the given file" Notice that ``optionparse`` parses the docstring by looking at the characters ",", ":", "=", "\\n", so be careful in using them. If the docstring is not correctly formatted you will get a SyntaxError or worse, the script will not work as expected. """ import optparse, re, sys USAGE = re.compile(r'\s*(?P.*)\s*\s*usage: (?P.*?)(\n[ \t]*\n|$)', re.DOTALL|re.UNICODE|re.LOCALE) def nonzero(self): # will become the nonzero method of optparse.Values "True if options were given" for v in self.__dict__.itervalues(): if v is not None: return True return False optparse.Values.__nonzero__ = nonzero # dynamically fix optparse.Values class ParsingError(Exception): pass optionstring="" def exit(msg=""): raise SystemExit(msg or optionstring.replace("%prog",sys.argv[0])) def parse(docstring, arglist=None): global optionstring optionstring = docstring match = USAGE.search(optionstring) if not match: raise ParsingError("Cannot find the option string") optlines = match.group('usage').splitlines() try: descr = match.group('descr') p = optparse.OptionParser(optlines[0], description=descr) for line in optlines[1:]: opt, help=line.split(':')[:2] short,long=opt.split(',')[:2] if '=' in opt: action='store' long=long.split('=')[0] else: action='store_true' p.add_option(str(short.strip()),str(long.strip()), action = action, help = help.strip()) except (IndexError,ValueError): raise ParsingError("Cannot parse the option string correctly") return p.parse_args(arglist) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] file nella directory
Qualcuno mi può fare un'esempio di script che data una directory (per esempio: C:\Programmi\plp) mi aggiunga ad una lista tutti i file presenti all'interno di questa directory?? grazie ;) -- castor91 ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] file nella directory
> Qualcuno mi può fare un'esempio di script che data una directory > (per esempio: C:\Programmi\plp) mi aggiunga ad una lista tutti i > file presenti all'interno di questa directory?? > grazie ;) Potresti provare con: import os content=os.listdir("C:\Programmi\plp") Ciao, Ernesto ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] file nella directory
2009/6/10 Ernesto > > Qualcuno mi può fare un'esempio di script che data una directory > > (per esempio: C:\Programmi\plp) mi aggiunga ad una lista tutti i > > file presenti all'interno di questa directory?? > > grazie ;) > > Potresti provare con: > > import os > content=os.listdir("C:\Programmi\plp") Suggerirei: import os content=os.listdir("C:/Programmi/plp") Ciao. Marco. -- http://thinkcode.tv - Prossimamente su questi schermi http://beri.it - Blog di una testina di vitello http://stacktrace.it - Aperiodico di resistenza informatica ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] file nella directory
castor91 wrote: > Qualcuno mi può fare un'esempio di script che data una directory (per > esempio: C:\Programmi\plp) mi aggiunga ad una lista tutti i file > presenti all'interno di questa directory?? os.listdir() ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] file nella directory
Qualcuno mi può fare un'esempio di script che data una directory (per esempio: C:\Programmi\plp) mi aggiunga ad una lista tutti i file presenti all'interno di questa directory?? grazie ;) -- -- castor91 ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] file nella directory
2009/6/10 castor91 > Qualcuno mi può fare un'esempio di script che data una directory (per > esempio: C:\Programmi\plp) mi aggiunga ad una lista tutti i file presenti > all'interno di questa directory?? >>> import glob >>> glob.glob('C:\programmi\plp\*') rispetto a os.listdir, glob ti permette di fare file matching piu' complicati, e.g. *.txt per ottenere tutti i file di testo nella directory. - http://docs.python.org/library/glob.html > grazie ;) > -- > castor91 > > ___ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > > -- Giovanni Dall'Olio, phd student Department of Biologia Evolutiva at CEXS-UPF (Barcelona, Spain) My blog on bioinformatics: http://bioinfoblog.it ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python