¿Cómo puedo comprimir un archivo con una estructura de directorios aplanada usando Zipfile en Python?

Estoy usando el paquete ZipFile para comprimir un archivo en Python. Aquí está mi código:

 archive = zipfile.ZipFile(join(settings.ARCHIVES_DIR, 'test.zip'), "a") for pdffile in glob.glob(join(settings.IBILLING_DIR, '*.pdf')): archive.write(pdffile) archive.close() 

El problema al que me enfrento es que el archivo ZIP creado contiene una estructura de directorios. Los archivos que se agregan se agregan con la ruta completa, lo que significa que el usuario que extrae el archivo también obtendrá una estructura de directorios. Me gustaría agregar archivos al ZIP pero sin ninguna estructura de directorios.

¿Cómo puedo hacer esto? No encontré esta información en los documentos.

Gracias

Primero agrega

 import os 

luego modifique la línea archive.write para que sea:

 archive.write(pdffile, os.path.basename(pdffile)) 

Esto especifica que cada pdf debe escribirse en el archivo zip con una ruta equivalente a solo la parte del nombre de archivo de la ruta desde la que lo está leyendo (especificando el parámetro arcname para la llamada write() ).

Sin embargo, tenga en cuenta que esto significa que si tiene dos archivos PDF con el mismo nombre en directorios diferentes, uno sobrescribirá al otro.