Algunos antecedentes: Tenemos un antiguo sistema de base de datos documental basado en la web en la que trabajo, que consiste casi en su totalidad de los documentos de MS Office con las extensiones "normales" (.doc, .xls, .ppt). Todos se nombran según algún tipo de número de ID arbitrario (es decir, 1245.doc). Estamos cambiando a SharePoint y necesito cambiar el nombre de todos estos archivos y ordenarlos en carpetas. Tengo un archivo CSV con todo tipo de información (como la que corresponde el número de identificación a la que el título del documento), así que estoy usando para cambiar el nombre de estos archivos. Escribí un breve script de Python que cambia el nombre del título del número de ID.Python String.Replace() no reemplazar caracteres
Sin embargo, algunos de los títulos de los documentos tienen barras y otros caracteres, posiblemente, no es bueno tener en un título de un archivo, por lo que quiero reemplazarlos con guiones:
bad_characters = ["/", "\\", ":", "(", ")", "<", ">", "|", "?", "*"]
for letter in bad_characters:
filename = line[2].replace(letter, "_")
foldername = line[5].replace(letter, "_")
- Ejemplo de
line[2]
: "bla, bla aburrido - Reunión 2/19/2008.doc" - Ejemplo de
line[5]
: "Las reuniones de negocios 2/2008"
Cuando agrego print letter
interior del bucle for
, se imprimirá la carta que se supone que debe reemplazar, pero en realidad no reemplazará ese personaje con un guión como yo quiero que haga.
¿Hay algo que estoy haciendo mal aquí?
Pregunta tangencial: ¿ha considerado hacer esto con una expresión regular? –
@todos - Gracias por las explicaciones. No puedo creer que lo haya pasado por alto. (jueves ...) – ZeroUptime