¿Cómo puedo crear archivos en Windows con barras incrustadas, usando Python?

Después de una media hora de búsqueda en Google, me sorprende que no puedo encontrar una manera de crear un archivo en Windows con barras diagonales en el nombre. El cliente exige que los nombres de archivo tengan la siguiente estructura:

28/04/2012 16:07 PM 6,781 12Q1_C125_G_04-17.pdf

Hasta ahora no he encontrado ninguna forma de codificar las barras inclinadas para que formen parte del nombre del archivo en lugar de la ruta.

¿Alguna sugerencia?

Usted no puede

La barra inclinada es uno de los caracteres que no pueden usarse en los nombres de archivos de Windows, consulte http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85). aspx

Las siguientes reglas fundamentales permiten que las aplicaciones creen y procesen nombres válidos para archivos y directorios, independientemente del sistema de archivos:

Use un punto para separar el nombre del archivo base de la extensión en el nombre de un directorio o archivo.

Use una barra invertida ( \ ) para separar los componentes de una ruta. La barra diagonal inversa divide el nombre del archivo de la ruta y un nombre de directorio de otro nombre de directorio en una ruta. No puede usar una barra invertida en el nombre del archivo o directorio real porque es un carácter reservado que separa los nombres en componentes.

Utilice una barra invertida según sea necesario como parte de los nombres de los volúmenes, por ejemplo, “C: \” en “C: \ ruta \ archivo” o “\ server \ share” en “\ server \ share \ ruta \ archivo” para Universal Denominación Convención (UNC) nombres. Para obtener más información sobre los nombres UNC, consulte la sección Limitación de longitud de ruta máxima.

No asum la sensibilidad a los casos. Por ejemplo, considere que los nombres OSCAR, Oscar y Oscar son los mismos, aunque algunos sistemas de archivos (como un sistema de archivos compatible con POSIX) pueden considerarlos diferentes. Tenga en cuenta que NTFS es compatible con la semántica POSIX para la distinción entre mayúsculas y minúsculas, pero este no es el comportamiento predeterminado. Para más información, vea CreateFile.

Los designadores de volumen (letras de unidad) también distinguen entre mayúsculas y minúsculas. Por ejemplo, “D: \” y “d: \” se refieren al mismo volumen.

Utilice cualquier carácter en la página de códigos actual para un nombre, incluidos los caracteres Unicode y los caracteres en el conjunto de caracteres extendido (128–255), excepto por lo siguiente:

  The following reserved characters: < (less than) > (greater than) : (colon) " (double quote) / (forward slash) \ (backslash) | (vertical bar or pipe) ? (question mark) * (asterisk) 

Valor entero cero, a veces denominado el carácter NUL ASCII.

Caracteres cuyas representaciones de enteros están en el rango de 1 a 31, excepto en el caso de flujos de datos alternativos donde se permiten estos caracteres. Para obtener más información sobre las secuencias de archivos, consulte Secuencias de archivos.

Cualquier otro carácter que el sistema de archivos de destino no permita.

Al menos toda la instalación de Windows que he visto no te permitirá crear archivos con barras inclinadas. Incluso si fuera posible de alguna manera, al hacer magia de mierda profunda, probablemente arruinará casi todas las aplicaciones, incluido Windows Explorer.

Sin embargo, podría abusar de las capacidades de Unicode de Windows.

Crear un archivo con (esto no es una barra inclinada, es “barra inclinada de división”, vea http://www.fileformat.info/info/unicode/char/2215/index.htm ) en su nombre funciona bien, por ejemplo.

Um … ¿la barra inclinada no es un carácter legal en un nombre de archivo de Windows?

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx