зачем использовать os.path.join над конкатенацией строк

Я не могу видеть большую картину здесь, я думаю; но в принципе я понятия не имею, почему вы использовали бы os.path.join вместо обычной конкатенации строк?

В основном я использовал VBScript, поэтому я не понимаю смысла этой функции.

портативный

Записывайте манипуляции с файлами один раз, и он работает на разных платформах бесплатно. Разграничивающий характер абстрагируется, что упрощает вашу работу.

Умная

Вам больше не нужно беспокоиться, если этот путь к каталогу имел завершающую косую черту или нет . os.path.join добавит его, если потребуется.

Очистить

Использование os.path.join делает его очевидным для других людей, читающих ваш код, который вы работаете с os.path.join . Люди могут быстро просканировать код и обнаружить, что это путь к файлу по существу. Если вы решите построить его самостоятельно, вы, скорее всего, отвлечете читателя от поиска актуальных проблем с вашим кодом: «Хм, некоторые концы строк, подстановка. Является ли это файловым путем или что? Га! Почему он не использовал os.path.join ? 🙂

Будет работать с Windows с '\' и Unix (включая Mac OS X) с '/'.

для posixpath вот простой код

 In [22]: os.path.join?? Type: function String Form:<function join at 0x107c28ed8> File: /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/posixpath.py Definition: os.path.join(a, *p) Source: def join(a, *p): """Join two or more pathname components, inserting '/' as needed. If any component is an absolute path, all previous path components will be discarded.""" path = a for b in p: if b.startswith('/'): path = b elif path == '' or path.endswith('/'): path += b else: path += '/' + b return path 

не имеют окон, но то же самое должно быть там с '\'

Он не зависит от ОС. Если вы жестко кодируете свои пути как C: \ Все, что они будут работать только в Windows. Если вы жестко кодируете их по стандарту Unix «/», они будут работать только в Unix. os.path.join обнаруживает операционную систему, на которой работает, и соединяет пути с использованием правильного символа.