Ответ 1
Используйте os.path.join()
.
Пример: os.path.join(pathfile,"output","log.txt")
.
В вашем коде, который будет: rootTree.write(os.path.join(pathfile,"output","log.txt"))
Я написал код на Python, который использует /, чтобы сделать определенный файл в папке, если я хочу использовать код в Windows, он не будет работать, есть ли способ, с помощью которого я могу использовать код в Windows и Linux.
В Python я использую этот код:
pathfile=os.path.dirname(templateFile)
rootTree.write(''+pathfile+'/output/log.txt')
Когда я буду использовать свой код в предположении, что машина Windows, мой код не будет работать.
Как использовать "/" (разделитель каталогов) в Linux и Windows?
Используйте os.path.join()
.
Пример: os.path.join(pathfile,"output","log.txt")
.
В вашем коде, который будет: rootTree.write(os.path.join(pathfile,"output","log.txt"))
Использование:
import os
print os.sep
чтобы увидеть, как разделитель смотрит на текущую ОС.
В коде вы можете использовать:
import os
path = os.path.join('folder_name', 'file_name')
Вы можете использовать os.sep:
>>> import os
>>> os.sep
'/'
os.path.normpath(pathname)
также следует упомянуть, поскольку он преобразует разделители /
path в разделители \
в Windows. Это также сворачивает избыточные ссылки верхнего уровня... то есть, A/B
и A/foo/../B
и A/./B
все становятся A/B
И если вы Windows, все они становятся A\B
Некоторые полезные ссылки, которые помогут вам:
Если вам посчастливилось запустить Python 3. 4+, вы можете использовать pathlib
:
from pathlib import Path
path = Path(dir, subdir, filename) # returns a path of the system path flavour
или, что эквивалентно,
path = Path(dir) / subdir / filename
Сделайте import os
, а затем используйте os.sep
Вы можете использовать "os.sep"
import os
pathfile=os.path.dirname(templateFile)
directory = str(pathfile)+os.sep+'output'+os.sep+'log.txt'
rootTree.write(directory)
Не создавайте имена каталогов и файлов самостоятельно, используйте библиотеки, включенные в python.
В этом случае соответствующий os.path. Особенно присоединяется создание нового пути из каталога и имени файла или каталога, а также разделение, которое получает имя файла из полного пути.
Ваш пример будет
pathfile=os.path.dirname(templateFile)
p = os.path.join(pathfile, 'output')
p = os.path.join( p, 'log.txt')
rootTree.write(p)