Python笔记本使用运行脚本的返回值

Python笔记本使用运行脚本的返回值,python,Python,我正在使用python 3的Google Colab中的一个笔记本,真的需要用笔记本中生成的数据执行一些python 2代码 所以我所做的是 在我的单元格中生成数据并将其保存到data.txt文件中 编写一个python 2脚本myScript.py,其中包含一个main函数,该函数将sys.argv[1]中的文件解析为数据,然后调用my python2函数并执行所有操作,最后返回结果,即字典 我在笔记本上跑步 !python2 myScript.py./data.txt 它们当然都在同一个目录

我正在使用python 3的Google Colab中的一个笔记本,真的需要用笔记本中生成的数据执行一些python 2代码

所以我所做的是

在我的单元格中生成数据并将其保存到data.txt文件中 编写一个python 2脚本myScript.py,其中包含一个main函数,该函数将sys.argv[1]中的文件解析为数据,然后调用my python2函数并执行所有操作,最后返回结果,即字典 我在笔记本上跑步 !python2 myScript.py./data.txt 它们当然都在同一个目录中

命令运行时没有错误,但没有输出!如何捕获在变量中返回的结果,以便以后使用

不重要但可能有帮助:


有没有更好的方法来真正实现我想要实现的目标?

多亏@Manuel对这个问题的评论,我找到了这个解决方案,它成功了:

在myScript.py中,我通过sys.stdout.writejson.dumpsresults更改了返回结果 在我的笔记本中,我将执行脚本的单元格更改为: 结果=!python2 test_langdetect.py./tmp_comments.txt myVar=json.loadsresults[0]
当然,您需要导入json

,可能是让python脚本写入stdout并将其作为字符串读回:myvar=!python2 myScript.py./data.txt myScript.py应使用打印或类似方式写入stdoutdef main:print'Hello World'`如果你有一本字典,你可以使用eval,也可以像csv一样将它打印出来,然后解析回dicts谢谢你的回答,我不知道我们可以使用myvar=!python2 myScript.py./data.txt,我使用该洞察将字典转储为JSON,然后从笔记本中加载。谢谢你的帮助