Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

Переносные

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

Smart

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

Очистить

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

Ответ 2

Будет работать в 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

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

Ответ 3

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