假设在script_mode中运行一段代码并产生这样的数据:
my_data = [1, 2, 3, 4] #please note this is output after running not data in script现在我切换到控制台来调试代码。我需要使用刚刚生成的数据,而不能直接复制,以避免胡言乱语的效果。我的解决方案是首先在script_mode中进行酸洗,然后在interactive_mode中取消酸洗:
使用5个命令的代码:
脚本模式
import pickle
with open('my_data','wb') as file:
pickle.dump(my_data, file)Interactive_mode:
import os, pickle
# change to the working directory
os.chdir('~\..\')
with open('my_data', 'rb') as file:
my_data = pickle.load(file)
# my_data is finally loaded in console
# then manipulate it on the console.如何在更少的步骤中做到这一点?
发布于 2017-10-19 16:54:28
您可以像python -i your_file_name.py一样使用-i选项运行该文件。
这将首先运行您的文件,然后打开一个交互式shell,其中包含所有存在并可供使用的变量。
发布于 2017-10-21 04:18:47
如果在/path/to/your/project目录中有如下脚本your_script.py:
my_data = [1, 2, 3, 4]如果要在Python 2交互式shell中调试脚本,可以执行以下操作:
$ python
>>> execfile('/path/to/your/project/your_script.py')或者,使用Python 2+3方式:
>>> exec(open('/path/to/your/project/your_script.py').read(), globals())内置函数exec()支持Python代码的动态执行。内置函数globals()返回当前的全局字典。这样你就可以访问你的数据:
>>> my_data
[1, 2, 3, 4]发布于 2017-10-24 08:42:08
就我个人而言,我会使用IPython,只是:
pip install IPython然后在您想放入控制台的任何地方,只需
import IPython在文件的顶部,使用:
IPython.embed()你想顺道去的地方。
一旦输入变量列表以及变量的类型和值,就可以输入"whos“。这是非常有用的,但这对你来说应该是有效的。IPython是一个可靠的python shell。
如果您更习惯于标准pdb,也可以使用ipdb。它也真的很棒。
https://stackoverflow.com/questions/45608091
复制相似问题