solución de longitud de nombre de archivo de python win32

Descubrí que no se puede open(filepath) cuando la longitud de la ruta de archivo supera los 255 caracteres, incluso si el nombre del archivo tiene 10 caracteres (la parte restante es la ruta del directorio).

¿Alguna idea para solucionar este problema? (Python 2.6 en win32)

El enfoque más general de esto es prefijar la ruta con \\\\?\\ ( referencia ). Tenga en cuenta que esto deshabilita cierto preprocesamiento en la ruta, pero nada importante IMO.

También puedo notar que en Windows Server 2003 de 32 bits con Python 2.7 tuve que usar la ruta Unicode prefijada ( u"\\\\\\\\?\\\\" prefix or ur"\\\\?\\" ) ya que (como se mencionó en la referencia ) las funciones de API no Unicode aún pueden estar limitadas a la longitud de MAX_PATH aunque se use el prefijo.

por ejemplo, ur"\\\\?\\c:\temp\....\abc.txt"

Una solución a nivel de sistema operativo de Windows es usar el comando DOS SUBST para definir una pseudo unidad en un directorio particular.

 SUBST Q: C:\really\long\path\name\full\of\sub\directories 

Luego puede acceder a los archivos en ese directorio como Q:filename .