Где я могу найти список разрешенных символов в именах файлов, в зависимости от операционной системы? (например, в Linux символ :
допускается в именах файлов, но не в Windows)
special-characters
filenames
чувак питон
источник
источник
Ответы:
Вы должны начать со страницы Wikipedia Filename . У него есть таблица приличного размера ( Сравнение ограничений имени файла ), в которой перечислены зарезервированные символы для довольно большого количества файловых систем.
У этого также есть множество другой информации о каждой файловой системе, включая зарезервированные имена файла, такие как
CON
под MS-DOS. Я упоминаю об этом только потому, что однажды меня это укусило, когда я укоротил включаемый файл сconst.h
доcon.h
и потратил полчаса, чтобы выяснить, почему завис компилятор.Получается, что DOS игнорирует расширения для устройств так, чтобы они
con.h
были точно такими же, какcon
и консоль ввода (то есть, разумеется, компилятор ждал, пока я наберу заголовочный файл, прежде чем он продолжится).источник
POSIX "Fully portable filenames"
запись, в которой перечислены эти:A–Z a–z 0–9 . _ -
Хорошо, так что смотрите Сравнение файловых систем, если вам нужны только основные проигрыватели файловых систем:
NUL
,\
,/
,:
,*
,"
,<
,>
,|
. Кроме того, нет пробела в начале или конце, и нет точки в конце .:
или/
NUL
или/
поэтому любой байт , за исключением
NUL
,\
,/
,:
,*
,"
,<
,>
,|
и вы не можете иметь файлы / папки не называйте.
или..
и не управляющие символы (конечно).источник
/
. Windows не допускает обратную косую черту и некоторые строки (напримерCON
).:
именами s.В ОС Windows создайте файл и присвойте ему недопустимый символ, как
\
в имени файла. В результате вы получите всплывающее окно со всеми недопустимыми символами в имени файла.источник
Чтобы быть более точным о Mac OS X (теперь называется MacOS)
/
в Finder интерпретируется:
в файловой системе Unix.Это было сделано для обратной совместимости, когда Apple перешла с Classic Mac OS.
Допустимо использовать
/
имя файла в Finder, просматривая тот же файл в терминале, который будет отображаться с:
.И это работает и наоборот: вы не можете использовать
/
в имени файла с терминалом, но в:
порядке и будет отображаться как/
в Finder.Некоторые приложения могут быть более строгими и запрещать оба символа во избежание путаницы или из-за того, что они сохраняли логику из предыдущих Classic Mac OS или для совместимости имен между платформами.
источник
Для имен файлов "English locale" это работает хорошо. Я использую это для очистки имен загружаемых файлов. Имя файла не предназначено для связи с чем-либо на диске, оно предназначено для загрузки файла, поэтому проверки пути отсутствуют.
В основном он удаляет все непечатаемые и зарезервированные символы для Windows и других ОС. Вы можете
легкорасширить шаблон для поддержки других локалей и функций.источник
Вот код для очистки имени файла в python.
источник
:return: a valid name for Win/Mac/Linux
это не так при любых обстоятельствах.