2011-11-18 16 views
5

Si estoy descomprimiendo un archivo Zip con la biblioteca Python ZipFile, donde se creó el archivo en Windows, pero mi código se está ejecutando en Unix, ¿los separadores de ruta serán siempre de estilo Unix?Separadores de ruta Python ZipFile

+0

parece que tiene que ser ya que no está almacenado como una cadena. Espero que sí :) – fncomp

+2

¡Eso espero! Pero cuando se trata de computadoras, la esperanza no tiene nada que ver con nada ... – Joe

Respuesta

14

Internamente, ZipFile almacena barras inclinadas según lo requerido por el zip file specification.

Externamente, se traducen utilizando os.sep por lo que coincidirá con lo que normalmente se espera en una plataforma determinada.

referencias Código:

+0

¡Gracias! Supuse que esto era cierto, pero es bueno tener evidencia. – Joe

+2

Tenga en cuenta que esta conversión solo se aplica al crear una entrada en el archivo ZIP. Al acceder a miembros existentes (por ejemplo, con 'zip_file.read ('dir/file.txt')'), las barras deben ser siempre utilizadas. – Feuermurmel

+1

+1 para el enlace al archivo zip. ¡¡¡Gracias!!! Aquí está la sección relevante: 4.4.17 nombre de archivo: (Variable) 4.4.17.1 El nombre del archivo, con ruta relativa opcional. La ruta almacenada NO DEBE contener una letra del dispositivo , o una barra diagonal. Todas las barras DEBEN ser barras diagonales '/' en oposición a barras hacia atrás '\' para compatibilidad con Amiga y sistemas de archivos UNIX etc. Si la entrada proviene de la entrada estándar , no hay un campo de nombre de archivo. –

Cuestiones relacionadas