def is_new_year(table_name): """ Mira en el txt el año y si no hay fecha alguna procesada para ese año entonces devolverá True """ # si el fichero no tiene nada devolvemos False para no crear luego una tabla vacia if is_empty(TXT_FILE): log_msg4("WARNING: No se puede obtener el año del dump.txt vacío!!") return False else: # si el fichero no está vacío lo leemos para comprobar el año f = open(TXT_FILE) f.readline() # la primera linea no interesa. Leemos la segunda y sacamos el # año eligiendo el primer grupo (\d{4}) de la expresión regular # que coincide con dicha línea l = f.readline() m = re.match(".*(\d{4})\-\d{2}.*", l) # seteamos txt_year con el año del dumped.txt global txt_year txt_year = m.group(1) # miramos si en la lista de procesados (logs.processed) # aparece alguno ya procesado para el año del txt, # lo cual quiere decir que ya existe la tabla return getConfig().year_not_exists_in_list(txt_year, 'analysis')
def txt_to_table(table_name): """ Populo la tabla con los datos del _result.txt """ table_name_year = get_table_name_year(table_name) # si el fichero no tiene nada no hay nada que pasar a la BD if is_empty(TXT_FILE): log_msg4("WARNING: No se populó la tabla. dump.txt vacío!!") return # http://stackoverflow.com/questions/3971541/what-file-and-directory-permissions-are-required-for-mysql-load-data-infile # http://www.markhneedham.com/blog/2011/01/18/mysql-the-used-command-is-not-allowed-with-this-mysql-version/ query = "LOAD DATA LOCAL INFILE '" + TXT_FILE + "' INTO TABLE " + \ table_name_year + " IGNORE 1 LINES;" log_msg4("Volcando sobre " + table_name_year) exec_mysql(DB_NAME, query=query, options=['local-infile']) log_msg_ok4()