«Почти всегда безопасно» правильно. Все платформы, о которых вы заботитесь, вероятно, сегодня работают нормально, и я не думаю, что они изменят свои соглашения в ближайшее время.
Тем не менее, Python очень переносим и работает намного больше, чем обычные платформы. Причина использования модуля os
состоит в том, чтобы помочь сгладить ситуацию, когда к платформе предъявляются другие требования.
Есть ли у вас веская причина не использовать функции os
?
os.pardir
самодокументируется, тогда как ".."
нет, и os.pardir может быть проще для grep для
Вот некоторые документы из Python 1.6, когда Mac все еще отличался от всего.
Подпрограммы ОС для Mac, DOS, NT или Posix в зависимости от того, какую систему мы используем
на.
Это экспорт:
- все функции из posix, nt, dos, os2, mac или ce, например, unlink, stat и т. д.
os.path - это один из модулей posixpath, ntpath, macpath или dospath
os.name - это «posix», «nt», «dos», «os2», «mac» или «ce»
os.curdir - это строка, представляющая текущий каталог ('.' или ':')
os.pardir - это строка, представляющая родительский каталог ('..' или '::')
os.sep является (или наиболее распространенным) разделителем пути ('/' или ':' или '\')
os.altsep - разделитель альтернативных путей (нет или '/')
os.pathsep - это разделитель компонентов, используемый в $ PATH и т. д.
os.linesep - разделитель строк в текстовых файлах ('' или '' или '')
os.defpath - это путь поиска по умолчанию для исполняемых файлов
Программы, которые импортируют и используют 'os', имеют больше шансов быть
портативный между различными платформами. Конечно, они должны только тогда
использовать функции, которые определены всеми платформами (например, unlink и
opendir) и оставьте все манипуляции с именами путей к os.path (например, split
и присоединяйтесь).