У меня есть сценарий под названием «test.py» и относится к конфигурационному файлу с именем «cfg.yaml». Эти два находятся в том же каталоге, что и «test/scripts».Смутно об использовании относительного и абсолютного пути в Python
test/scripts/test.py
test/script/cfg.yaml
Сейчас я пишу Баш скрипт внутри «тест/data1/data2» под названием task.sh
Изнутри task.sh, я хочу, чтобы сделать вызов питона сценария
test.sh содержимое, как показано ниже:
#!/bin/sh
python ../../scripts/test.py
test.py открывает и читает cfg.yaml как открытое ("cfg.yaml"), но когда test.sh называется, он терпит неудачу, потому что «CFG. ямл "не упоминается с относительным па е. Как это разрешить?
1. вы можете запустить test.py из теста/скриптов, 2. внутри test.py вы можете изменить путь к cfg-файлу как «../../scripts/test.py» или 3. вы можете использовать абсолютный путь для файла cfg.Это происходит потому, что интерпретатор python вызывается из test/data1/data2 – rivu
Относительные пути относятся к текущему рабочему каталогу, а не по отношению к местоположению исполняемого файла. – mehtunguh