os.path.join
Python был described as "mostly pointless", потому что он отбрасывает любые аргументы до одного, содержащего ведущую косую черту. Оставляя в стороне на данный момент, что это преднамеренное и задокументированное поведение, есть ли доступная функция или шаблон кода, который не отбрасывается так?os.path.join(), который не отбрасывает перед началом косой черты?
Учитывая HOMEPATH=\users\myname
следующее отбросит начало пути
print os.path.join('C:\one', os.environ.get("HOMEPATH"), 'three')
результат:
\Users\myname\three
желательно:
C:\one\Users\myname\three
Будучи укусила этого несколько раз, Я довольно хорошо заметил замечательную косую черту, когда это то, что я написал , но как насчет того, когда, когда вы не знаете, как выглядит входящая строка, как в этом примере?
Я сожалею, что это укусил вас несколько раз, но это * * намеренное и документированная особенность. –
Это абсолютно намеренно. Он предназначен для объединения путей с путями; если один путь оказывается абсолютным (начинается с косой черты), он будет рассматриваться как таковой. Здесь ничего не сломано, кроме вашего понимания. – nneonneo
Документы дают понять, что это преднамеренное поведение, но при условии, что комментарий «в основном бессмысленный», который я заимствовал из связанного ответа, был увеличен 14 или более раз, я, конечно, не одинок, думая, что должна быть альтернатива. –