Я должен использовать конфигурационный файл cfg.yml
:
---
paths:
reldir : ../my/dir
В Python я запускаю:
with open('cfg.yml', 'r') as config_file:
cfg = yaml.load(config_file)
, и моя цель - сделать что-то с некоторыми файлы в каталоге reldir
, через файл Python. Вышеуказанное работает хорошо.
Однако эта Python программа должна быть в состоянии работать на Windows и Linux. Если я не ошибаюсь, они используют разные разделители пути, /
и \\
. Таким образом, я хочу сделать reldir
в файле конфигурации более надежным:
---
paths:
reldir : os.path.join('..','my','dir').
Если мое понимание правильное, это объединит эти имена папок с правильным разделителем, в зависимости от того, где Python Программа выполняется.
Однако это не работает, и print(reldir)
выводит os.path.join('..','my','dir')
вместо ../my/dir
. То есть он принимает строку буквально, не оценивая функцию os.path.join
.
Я экспериментировал с exec()
и eval()
, но сначала я все равно не смог заставить ее работать; и во-вторых, я прочитал здесь , что я не должен их использовать.
Как мне лучше поступить?