¿Por qué Python da “OSError: Nombre de archivo demasiado largo” para el nombre de archivo más corto que el límite del sistema de archivos?

El siguiente código produce una excepción inesperada:

open("52bbe674cdc81d4140099b84fa69eea4249bcceee75bcbe4838d911ab076547cfdad3c1c5197752a98e5525fe76613dbe52dcdb1a9a397669babce0f101d010142cffa000000.csv", "w") OSError: [Errno 36] File name too long: '52bbe674cdc81d4140099b84fa69eea4249bcceee75bcbe4838d911ab076547cfdad3c1c5197752a98e5525fe76613dbe52dcdb1a9a397669babce0f101d010142cffa000000.csv' 

Esto es inesperado porque mi sistema de archivos es ext4 que (según Wikipedia) tiene un límite de longitud de nombre de archivo de 255 bytes. El nombre de archivo anterior tiene una longitud de 144.

Entonces, ¿por qué Python genera esta excepción cuando el límite de longitud del nombre de archivo no se ha excedido?

He encontrado una solución. Resulta que no estoy tratando con ext4 puro, en realidad es ecryptfs en capas sobre ext4, que se transfiere desde una instalación previa de Ubuntu. Como se sugiere en una respuesta no aceptada a esta pregunta relacionada, la capa de ecryptfs impone un límite de 143 caracteres a la longitud del nombre de archivo. Una respuesta definitiva al límite de longitud del nombre de archivo en ecryptfs se puede encontrar aquí .