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

Как использовать "/" (разделитель каталогов) в Linux и Windows в Python?

Я написал код на Python, который использует /, чтобы сделать определенный файл в папке, если я хочу использовать код в Windows, он не будет работать, есть ли способ, с помощью которого я могу использовать код в Windows и Linux.

В Python я использую этот код:

pathfile=os.path.dirname(templateFile)
rootTree.write(''+pathfile+'/output/log.txt')

Когда я буду использовать свой код в предположении, что машина Windows, мой код не будет работать.

Как использовать "/" (разделитель каталогов) в Linux и Windows?

4b9b3361

Ответ 1

Используйте os.path.join(). Пример: os.path.join(pathfile,"output","log.txt").

В вашем коде, который будет: rootTree.write(os.path.join(pathfile,"output","log.txt"))

Ответ 2

Использование:

import os
print os.sep

чтобы увидеть, как разделитель смотрит на текущую ОС.
В коде вы можете использовать:

import os
path = os.path.join('folder_name', 'file_name')

Ответ 3

Вы можете использовать os.sep:

>>> import os
>>> os.sep
'/'

Ответ 4

os.path.normpath(pathname) также следует упомянуть, поскольку он преобразует разделители / path в разделители \ в Windows. Это также сворачивает избыточные ссылки верхнего уровня... то есть, A/B и A/foo/../B и A/./B все становятся A/B И если вы Windows, все они становятся A\B

Ответ 5

Некоторые полезные ссылки, которые помогут вам:

Ответ 6

Если вам посчастливилось запустить 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

Ответ 7

Сделайте import os, а затем используйте os.sep

Ответ 8

Вы можете использовать "os.sep"

 import os
 pathfile=os.path.dirname(templateFile)
 directory = str(pathfile)+os.sep+'output'+os.sep+'log.txt'
 rootTree.write(directory)

Ответ 9

Не создавайте имена каталогов и файлов самостоятельно, используйте библиотеки, включенные в python.

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

Ваш пример будет

pathfile=os.path.dirname(templateFile)
p = os.path.join(pathfile, 'output')
p = os.path.join( p, 'log.txt')
rootTree.write(p)