我正在使用 %run 魔法从另一个笔记本运行一个 jupyter 笔记本
我想以表单的形式给被调用的notebook传参数
%run notebook.ipynb param1=value1 param2=value2 ...
因此我创建了以下代码:
#sys.argv
p = ['data_csv=data2.csv','master=lala','data_dir=./data']
parameters = list(
map(lambda s: re.sub('$', '"', s),
map(lambda s: s.replace('=','="'),
filter(
lambda s: s.find('=') > -1,
p
)
)
)
)
for parameter in parameters:
eval(parameter)
不幸的是我得到了
data_csv="data2.csv"
^
SyntaxError: invalid syntax
答案 0 :(得分:0)
正如 Klaus D. 评论的那样,eval 不能用于赋值,但 exec 可以,因此工作解决方案如下所示:
import sys
import re
p = ['data_csv=data2.csv','master=lala','data_dir=./data']
parameters = list(
map(lambda s: re.sub('$', '"', s),
map(lambda s: s.replace('=','="'),
filter(
lambda s: s.find('=') > -1,
p
)
)
)
)
for parameter in parameters:
exec(parameter)