Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用文件输入运行Python顶级/解释器?_Python - Fatal编程技术网

如何使用文件输入运行Python顶级/解释器?

如何使用文件输入运行Python顶级/解释器?,python,Python,假设我有一个Python文件,我想在顶层运行它,但在它完成后,我想从它离开的地方开始。我希望能够使用它创建的对象,等等 一个简单的例子,假设我有一个Python脚本,它执行I=5。脚本结束后,我希望返回到顶层,并能够继续使用I=5python-I或模块。假设我正确理解了您的问题,那么-I开关就是您要找的: ~$ echo "i = 5" > start.py ~$ python -i start.py >>> i 5 您还可以在您的环境中设置PYTHONINSPECT

假设我有一个Python文件,我想在顶层运行它,但在它完成后,我想从它离开的地方开始。我希望能够使用它创建的对象,等等


一个简单的例子,假设我有一个Python脚本,它执行
I=5
。脚本结束后,我希望返回到顶层,并能够继续使用
I=5
python-I
或模块。

假设我正确理解了您的问题,那么-I开关就是您要找的:

~$ echo "i = 5" > start.py
~$ python -i start.py 
>>> i
5

您还可以在您的环境中设置
PYTHONINSPECT
,如前所述,“python-i”是最接近您问题的答案。您还可以使用“导入”在解释器中运行脚本。例如,如果您正在编辑“testscript.py”,您可以执行以下操作:

$ ls -l
-rw-r--r-- 1 Xxxx None    771 2009-02-07 18:26 testscript.py
$ python
>>> import testscript
>>> print testlist
['result1', 'result2']
>>>
testscript.py必须在sys.path中才能工作(sys.path自动包括当前工作目录)


如果您希望运行几个不同的脚本并同时从所有脚本获取环境,那么这非常有用

看起来像是您正在寻找的-例如:

$ cat >seti.py
i = 5
^C
$ cat >useit.py
execfile('seti.py')
print i
$ python useit.py 
5
$ 

请注意,由于构成
\uuuu main\uuuu
模块的内容略有不同,因此在REPL中导入的内容并不完全相同。谢谢!在写了一年的python之后,我不好意思说我不知道这一点。这在python文档中的某个地方吗?我一辈子都找不到它。
python-h
显示,除其他外,“-I:在运行脚本后以交互方式进行检查;即使stdin看起来不是终端,也会强制提示;另外PYTHONINSPECT=x”“”这实际上也很有用,我使用sys调用执行其他python文件,在谷歌上也找不到如何做到这一点。谢谢