¿Dónde puedo encontrar una lista de caracteres permitidos en los nombres de archivo, dependiendo del sistema operativo? (por ejemplo, en Linux, el carácter :
está permitido en los nombres de archivo, pero no en Windows)
special-characters
filenames
tipo pitón
fuente
fuente
Respuestas:
Deberías comenzar con la página de nombre de archivo de Wikipedia . Tiene una tabla de tamaño decente ( Comparación de limitaciones de nombre de archivo ), que enumera los caracteres reservados para muchos sistemas de archivos.
También tiene una gran cantidad de otra información sobre cada sistema de archivos, incluidos los nombres de archivos reservados, como
CON
en MS-DOS. He mencionado que sólo porque me picaron por que una vez cuando me acorté un archivo de inclusión a partirconst.h
decon.h
y pasó media hora a averiguar por qué el compilador colgado.Resulta DOS ignorados extensiones para los dispositivos de modo que
con.h
era exactamente el mismo quecon
, la consola de entrada (lo que significa, por supuesto, el compilador me estaba esperando a escribo en el archivo de cabecera antes de que continuaría).fuente
POSIX "Fully portable filenames"
entrada, que enumera estos:A–Z a–z 0–9 . _ -
OK, así que mira la Comparación de sistemas de archivos si solo te interesan los sistemas de archivos de los jugadores principales:
NUL
,\
,/
,:
,*
,"
,<
,>
,|
. Además, no hay caracteres de espacio al principio o al final, y no hay punto al final .:
o/
NUL
o/
por lo que cualquier byte de excepción
NUL
,\
,/
,:
,*
,"
,<
,>
,|
y no se puede tener archivos / carpetas llamar.
o..
y no hay caracteres de control (por supuesto).fuente
/
. Windows no permite la barra invertida y algunas cadenas (pCON
. Ej .).:
s en sus nombres.En el sistema operativo Windows, cree un archivo y asígnele un carácter no válido como
\
en el nombre del archivo. Como resultado, aparecerá una ventana emergente con todos los caracteres no válidos en un nombre de archivo.fuente
Para ser más precisos sobre Mac OS X (ahora llamado MacOS)
/
en el Finder se interpreta:
en el sistema de archivos Unix.Esto se hizo por compatibilidad con versiones anteriores cuando Apple se mudó del Mac OS clásico.
Es legítimo usar un
/
nombre de archivo en el Finder, mirando el mismo archivo en el terminal que aparecerá con un:
.Y también funciona al revés: no puedes usar un
/
nombre de archivo en el terminal, pero a:
está bien y aparecerá como/
en el Finder.Algunas aplicaciones pueden ser más restrictivas y prohíben ambos caracteres para evitar confusiones o porque mantienen la lógica del sistema operativo Mac clásico anterior o por compatibilidad de nombres entre plataformas.
fuente
Para los nombres de archivo de "configuración regional en inglés", esto funciona bien. Estoy usando esto para desinfectar los nombres de los archivos cargados. El nombre del archivo no debe estar vinculado a nada en el disco, es para cuando el archivo se está descargando, por lo tanto, no hay comprobaciones de ruta.
Básicamente, elimina todos los caracteres no imprimibles y reservados para Windows y otros sistemas operativos. Puede extender
fácilmenteel patrón para admitir otras configuraciones regionales y funcionalidades.fuente
Aquí está el código para limpiar el nombre del archivo en Python.
fuente
:return: a valid name for Win/Mac/Linux
no es cierto en todas las circunstancias.