En este caso cada regla se aplica a un elemento específico del registro, pero la posición siempre es la misma en todos los registros.
On Fri, Apr 12, 2019, 3:01 AM Chema Cortes <pych...@gmail.com> wrote: > > El vie., 12 abr. 2019 a las 2:32, AGTUGO (<agt...@gmail.com>) escribió: > >> >> Excelente respuesta, aunque no entiendo bien la parte de anidar los fors, >> ahi estas aplicando todas las reglas en todos los elementos del registro. >> Perdon por la respuesta rapida, >> > > He intentado *imitar* el código que habías puesto. No obstante, lo lógico > es que cada regla se aplique a todo el registro y que de ahí seleccione los > elementos que necesite comprobar. > > > > >> >> On Wed, Apr 10, 2019 at 4:18 AM Chema Cortes <pych...@gmail.com> wrote: >> >>> El mié., 10 abr. 2019 a las 4:21, AGTUGO (<agt...@gmail.com>) escribió: >>> >>>> Hola Lista de python es espa;ol, >>>> >>>> Espero que les guste el formato de mi pregunta con comentarios >>>> >>>> import operator as op >>>> from operator import itemgetter >>>> >>>> # Tengo que analizar varios CSVs y las "celdas" deben de cumplir >>>> ciertas reglas >>>> # en caso de que sea as'i todo el rengl'on es de utilidad y se guarda >>>> >>> >>> >>> En román paladino: quieres filtrar líneas de un texto CSV cuyos campos >>> cumplan una serie de reglas. >>> >>> Intenta identificar cuáles son los *invariantes* del proceso y >>> desacoplar lo que se pueda. En este caso concreto, el procesado línea a >>> línea de un fichero no debería depender de las reglas a aplicar ni de qué >>> elementos concretos se van a chequear. Lo mejor es asumir que en el >>> procesado del fichero únicamente aplicar una regla por línea. Con ello, el >>> trabajo se reduce a combinar varias reglas en una sola: >>> >>> rules = (rule1, rule2, rule3) >>> sels = (2, 5, 6) >>> >>> def pred(register): >>> selector = itemgetter(*sels) >>> return all(rule(ele) >>> for rule in rules >>> for ele in selector(register)) >>> >>> >>> A su vez, el fichero de reglas puede asumir que siempre actúa sobre un >>> registro de elementos (una lista). Según como sea, puedes sacar estas >>> reglas a otros ficheros con la idea de poder cambiar fácilmente de reglas >>> cambiando unos ficheros por otros. >>> >>> Yendo más allá, podrías tener una colección de reglas predefinidas y >>> crear con ellas conjuntos (RuleSets), y asociar un RuleSet para cada >>> ficheros CSV. >>> >>> Las combinaciones son innumerables y se puede complicar todo lo que se >>> quiera. >>> >>> >>> >>> -- >>> Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": >>> https://blog.ch3m4.org >>> Buscador Python Hispano: http://busca.ch3m4.org >>> <https://blog.ch3m4.org/pages/busqueda-python-es/> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es@python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> >> >> >> -- >> Arturo Muñoz Tolosa >> _______________________________________________ >> Python-es mailing list >> Python-es@python.org >> https://mail.python.org/mailman/listinfo/python-es >> > > > -- > Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": > https://blog.ch3m4.org > Buscador Python Hispano: http://busca.ch3m4.org > <https://blog.ch3m4.org/pages/busqueda-python-es/> > _______________________________________________ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es >
_______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es