Как получить переменную с путем к каталогу в скрипте python из скрипта bash? - PullRequest
1 голос
/ 04 февраля 2020

Я хотел бы знать, как я могу получить текущий рабочий каталог в качестве параметра в сценарии python, мой сценарий bash выглядит следующим образом:

#!/bin/bash
working_derictory=($PWD) #set working directory to variable
eval "python3.8 main.py" working_directory

в сценарии python Я пытаюсь получить это переменная, используя:

import sys
print (sys.argv[1])

после выполнения я получаю working_directory текст вместо пути к каталогу, также я пытался изменить его eval "python3.8 main.py" working_directory на eval "python3.8 main.py" pwd, но я получил тот же результат. Пожалуйста, укажите мне, что я сделал не так?

Ответы [ 2 ]

2 голосов
/ 04 февраля 2020

У вас есть несколько вариантов.

working_directory=$PWD
python3.8 main.py "$working_directory"

Это передаст значение вашей переменной в качестве аргумента командной строки. В Python вы будете использовать sys.argv[1] для доступа к нему.

export working_directory=$PWD
python3.8 main.py

Это добавит переменную окружения, используя export. В Python вы можете получить доступ к этому, используя import os и os.getenv('working_directory').

Вы также можете использовать этот синтаксис:

working_directory=$PWD python3.8 main.py

Это приводит к тому же (переменная среды) без загромождая среду вызывающей оболочки.

1 голос
/ 04 февраля 2020

Вы можете использовать библиотеку pathlib, чтобы не указывать ее в качестве параметра:

import pathlib

working_derictory = pathlib.Path().absolute()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...