Contents
La pregunta fundamental de la charla:
<ceronman> aún no me queda claro el problema <offray> ya leiste todo? <offray> tomo una lista de archivos y quiero colocar al comienzo de ellos dos etiquetas. Funciona perfecto para los archivos de esa lista que no tienen paréntesis en el nombre, pero en los que lo tienen genera error
y cómo llegamos a ella, con detalles de en dónde radican los problemas:
<offray> ceronman, sabes como agregar unas líneas al comienzo de un archivo, usando python?
<xtingray> cat archivo_encabezado >> archivo_destino
<xtingray> perdon :S
<xtingray> es alreves...
<xtingray> cat archivo_destino >> archivo_encabezado
<offray> umm... si, así lo hice
<offray> pero tengo un inconveniente con los archivos que tienen caracteres Iso-8859-1 en el título :-s
<offray> pensé que quizás abriendo cada archivo desde python podría tener más control sobre este aspecto
<xtingray> ya veo...
<offray> qué piensas al respecto?
<xtingray> cual es el inconveniente especificamente? el archivo final aparece dañado?
<offray> todos los cat funcionan perfecto cuando el archivo no tiene un título en iso-8859-1, hago la adición con este par de comandos
<offray> # concatenamos los dos archivos a un temporal
<offray> os.system('cat parsers.txt ' + lista_archivos[i] + ' > temp')
<offray> # y lo copiamos en la ruta del archivo original
<offray> os.system('cp temp ' + lista_archivos[i] )
<offray> en python
<offray> cuando llega a los archivos con iso-8859-1 me dice:
<offray> sh: -c: line 0: syntax error near unexpected token `('
<offray> sh: -c: line 0: `cat parsers.txt ./mediawiki_pages/SQL(2d)Ledger/revisions/00000001 > temp'
<offray> sh: -c: line 0: syntax error near unexpected token `('
<offray> sh: -c: line 0: `cp temp ./mediawiki_pages/SQL(2d)Ledger/revisions/00000001'
<offray> sh: -c: line 0: syntax error near unexpected token `('
<offray> es de anotar que los códigos iso-8859-1 están etre paréntesis
<xtingray> este seria uno de los parametros del cp "./mediawiki_pages/SQL(2d)Ledger/revisions/00000001" ?
<offray> ajá
<offray> por ejemplo (2d) es el código para el Guión
<xtingray> si entendi bien offray, creo que el problema esta en los parentesis... para un shell esto -> "(" es un caracter reservado...
<xtingray> has intentado escapar los caracteres con "\(" ?
<xtingray> algo asi: `cp temp ./mediawiki_pages/SQL\(2d\)Ledger/revisions/00000001` ?
<offray> Construí una lista de todos los archivos en lista_archivos. Tendría que tratarlos de modo distinto y no incluirlos en la lista
<offray> para colocar caractéres de escape antes y de cada paréntesis
<offray> requeriría entonces de dos ciclos, uno para los artículos sin paréntesis y otro para los que sí. Pero tiene sentido
<xtingray> tendrias que incluir codigo que revisara si los nombres contienen el caracter "(", y si es el caso, adicionar el caracter escape...
<ceronman> hola, lo siento, estaba comiendo
<xtingray> primero prueba con un solo registro y revisa si se te resuelve el problema...
<xtingray> anakim!
<ceronman> offray: python tiene funciones en sys para lidiar con encodings
<ceronman> no recuerdo exactamente cuales son, veamos la documentación
<ceronman> xtingray!
<xtingray> :)
<offray> ceronman, xtingray, sería de lujo si me ayudaran con eso! :)