Pregunta sobre windows, python – ¿Cómo puedo crear archivos en Windows con barras incrustadas, usando Python?

4

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?

¿Podría dar un resumen de lo que ha intentado hasta el momento, para que no volvamos a leerlo? Silas Ray

Tu respuesta

3   la respuesta
13

Usted no puede

La barra inclinada es uno de los caracteres que no se pueden usar en los nombres de archivos de Windows, consultehttp://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.

Utilice una barra invertida (\) para separar los componentes de un camino. 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 asuma 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.

Unicode en los nombres de archivo no es "un mecanismo no estándar completamente torcido". Está ahí, funciona, está documentado. Estoy de acuerdo en que los parecidos a Unicode pueden causar confusión, sin embargo. Pero esto es cierto en cualquier lugar y siempre que se permita Unicode. ch3ka
... funciona hasta que alguien mueva ese archivo a una máquina FAT32 que usa la página de códigos OEM para los nombres de archivos y las cosas explotan ... bgporter
@ sr2222 seguro. Pero los clientes obtienen lo que los clientes quieren. 1ª regla del freelancing. y oye, esotrabajos. ch3ka
o el carácter Unicode 'DIVISION SLASH' (U + 2215) ch3ka
0

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

7

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.

Creando un archivo con (Esto no es una barra diagonal, es una "barra de división", verhttp://www.fileformat.info/info/unicode/char/2215/index.htm ) en su nombre funciona bien, por ejemplo.

Funciona para OSX también John
Pensamiento creativo. Junuxx
bueno ... soy un hacker;) ch3ka

Preguntas relacionadas