Estoy almacenando nombres de archivos y rutas de archivos en mySQL. Recuperarlos de la base de datos usando la expresión LIKE requiere que escape todos los caracteres de nombre de archivo permitidos que colisionan con los caracteres especiales de mysql. Me complace simplemente usar el método string.replace() de Python, pero me preguntaba si había un método más estándar o incorporado para desinfectar rutas de archivos con SQLalchemy o tratar con rutas de archivos en mySQL en general.escapando caracteres especiales usando sqlalchemy
Editar: Un poco más de información. Necesito que la solución sea independiente del sistema operativo y establecida. No necesita ser implementado en SA. Aceptaré cualquier procedimiento de codificación que funcione. Guardando eso, necesito una lista de todos los caracteres que necesitan ser escapados y una elección inteligente de un char de escape.
Estoy usando el método '.like()' SA para seleccionar rutas de archivos. Que (según entiendo) usa '%' y '_' (¿hay otros?) Como comodines. Ambos también son válidos filname chrs. ¡Sería ciertamente extraño si SA pudiera leer mi mente y saber cuándo estaba usando '_' como un comodín de búsqueda vs. un carácter literal en un nombre de archivo y" cuídamela "por mí! :) – Paul
@Toofan: Paul tiene razón: SQLAlchemy no hará esto para '.like()' y consortes ('.contains()', '.startswith()' etc ...). Proporciona un argumento de 'escape' para estos métodos, pero debe escapar de la cadena usted mismo y proporcionar el carácter de escape utilizado. – Steven