[ Foro de Python ]

Orden

19-Nov-2020 14:47
Invitado (Alejandro)
3 Respuestas

Una consulta...estoy tratando de concatenar PDFs. Me funciona perfecto la concatenacion pero tengo el problema que enumeré los archivos del 1 al 11, pero me toma el orden 1, 10, 11, 2, 3, 4...
Quisiera saber como se puede mantener el order que le indico.
Les dejo el código utilizado


for p in range(1,12):
        print(p)
        dashboard='"BoletinSector-Endesarrollo/' + str(p) +'?Seccion='+ seccion[k] + '"'
        archivo='"' + path2 + str(p) + '.pdf"'
        comando='tabcmd export '+ dashboard + ' --pdf --pagesize a4 -f ' + archivo
        check_output(comando, shell=True)
    #lista pdfs a fusionar
    pdfs = [f for f in os.listdir(path2) if f.endswith(".pdf")]
    fusionador = PdfFileMerger()
    
    for pdf in pdfs:
        fusionador.append(open(path2+pdf, 'rb'))
    with open(path+'Boletin '+k+ ' '+current_date_format(now)+'.pdf', 'wb') as output:
        fusionador.write(output)


 


19-Nov-2020 23:19
Nacho Cabanes (+84)

La solución más sencilla es numerar los archivos como 01, 02, etc


20-Nov-2020 13:05
Invitado (Alejandro)

El problema es que los archivos vienen ya con esos nombres....y no tengo permiso de modificación sobre esa carpeta....
Quizas hay otra forma.....


21-Nov-2020 09:42
Nacho Cabanes (+84)

Entonces puedes no utilizar tu lista "pdfs", que contiene textos ordenados 1, 10, 11, 2, sino volcar de ella a una lista numérica y luego ordenarla por su valor numérico.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)