Ответ 1
Переменные Python могут быть доступны в первой строке ячейки %%bash
или %%script
и поэтому могут передаваться как параметры командной строки в script. Например, с помощью bash вы можете сделать это:
%%bash -s "$myPythonVar" "$myOtherVar"
echo "This bash script knows about $1 and $2"
Параметр командной строки -s
позволяет передавать позиционные параметры на bash, доступ через $n
для n-го позиционного параметра. Обратите внимание, что то, что фактически присвоено позиционной переменной bash, является результатом str(myPythonVariable)
. Если вы передаете строки, содержащие символы кавычек (или другие bash -чувствительные символы), вам нужно избежать их с помощью обратного слэша (например: \"
).
Кавычки важны - без них переменные python (представления строк) разбиваются на пробелы, поэтому если myPythonVar
был datetime.datetime
с str(myPythonVar)
как "2013-10-30 05:04:09.797507"
, то указанный выше bash script получить 3 позиционные переменные, первые два со значениями 2013-10-30
и 05:04:09.797507
. Его вывод будет:
This bash script knows about 2013-10-30 and 05:04:09.797507
Если вы хотите назвать переменные, и вы используете linux, используйте подход:
%%script env my_bash_variable="$myPythonVariable" bash
echo myPythonVariable\ value is $my_bash_variable
Вы можете указать несколько назначений переменных. Опять остерегайтесь цитат и других подобных вещей (здесь bash будет жаловаться горько!). Чтобы понять, почему это работает, см. Справочную страницу env
.