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