2013-08-09 1 views
1

Я использую python для написания сценариев для Autodesk Maya. Maya - это кросс-платформенное программное обеспечение и внутренне использует косую черту. Если я использую os.path.join операции на окнах это может привести к пути, как это:Обработка косой черты в python

e:/Test\\TemplatePicture.jpg 

Моя идея заключается в том, что до тех пор, пока я не использовать MS-DOS команды простой способ присоединиться к части пути, как это:

pathPart1 = "e:" 
pathPart2 = "Test" 
pathPart3 = "TemplatePicture.jpg" 
path = "s%/s%/s%" % (pathPart1, pathPart2, pathPart3) 

Есть ли что-то, что делает его плохой идеей?

+1

Да, у окон есть концепция нескольких приводов, поэтому это не сработает. – enginefree

+0

Я вполне уверен, что у python есть функция «realpath», аналогичная php. Просто дайте ему unix-esque путь к файлу, и он позаботится обо всем остальном. Только что проверили, взгляните на 'os.path.realpath' –

ответ

10

При импорте ОС, питон создаст os.path специфичного для вашей платформы. На linux его posixpath и на windows его ntpath. Когда вы работаете над путями Maya, используйте posixpath. Он будет следовать соглашениям linux даже на окнах. Когда вам нужно перейти на native, конвертировать с помощью realpath для вашей текущей системы.

import os 
import posixpath 

maya_path = posixpath.join('a','b','c') 
local_path = os.path.realpath(maya_path) 
0

Я не вижу никаких проблем с этим.

На самом деле есть связанный с этим вопрос here.

Подводя итоги обсуждения в рамках предоставленной ссылки - вы либо позволить пути к файлам питоной ручки или вы все это сами