Я не могу видеть большую картину здесь, я думаю; но в принципе я понятия не имею, почему вы использовали бы os.path.join
вместо обычной конкатенации строк?
В основном я использовал VBScript, поэтому я не понимаю точку этой функции.
Я не могу видеть большую картину здесь, я думаю; но в принципе я понятия не имею, почему вы использовали бы os.path.join
вместо обычной конкатенации строк?
В основном я использовал VBScript, поэтому я не понимаю точку этой функции.
Записывайте манипуляции с файлами один раз, и он работает на разных платформах бесплатно. Разграничивающий символ отбирается, облегчая вашу работу.
Вам больше не нужно беспокоиться о том, что этот путь к каталогу имеет конечный слэш или нет. 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 обнаруживает операционную систему, в которой он работает, и соединяет пути с использованием правильного символа.