在pythonshell中加载python脚本,就像键入i一样

2024-03-29 08:46:04 发布

您现在位置:Python中文网/ 问答频道 /正文

假设您在python交互式shell中,键入前两行:

>>> import math #just to have a statement as well as an expression
>>> [x * 2 for x in [1, 2, 3, 4]]
[2, 4, 6, 8]
>>>

如您所见,结果是在不使用打印功能的情况下打印的。 现在,如果我们将执行的代码保存在名为tempcode.py的文件中: import math #just to have a statement as well as an expression [x * 2 for x in [1, 2, 3, 4]]

问题是是否可以在python shell中加载/执行导致打印结果的文件?你知道吗

更新:我真正想做的是执行保存在文件中的代码行,并使python shell将其视为在文件中键入的代码。换句话说,我需要的是在一个文件中编写几行代码,而不是在repl中手动输入,并使它们产生相等的输出。节点.jsrepl有这个特性:.load

更清晰的更新:预期行为

>>> aBuiltinThing('tempcode.py')
[2, 4, 6, 8]
>>>

**问题**:python有aBuiltinThing吗?你知道吗


Tags: 文件to代码importanfor键入have
3条回答

可以在pythonshell中运行python文件。像这样

>>> execfile('abc.py')
[2, 4, 6, 8]

其中abc.py是这样的。你知道吗

print [x * 2 for x in [1, 2, 3, 4]]

如果在从shell执行时删除abc.py中的print,它将不会打印任何内容。你知道吗

如果abc.py像这样。你知道吗

[x * 2 for x in [1, 2, 3, 4]]
print 'test'

结果在壳里会是这样。你知道吗

>>> execfile('abc.py')
test

注意:execfilepython2中。你知道吗

感谢您的澄清,我已经根据您的更新编辑了我的答案。另外,我不确定您需要打印什么,因为您的python文件可以有n个变量和方法。最好的方法是执行python文件,并将文件的已执行对象保存在字典中,该字典可以用作下图:-你知道吗

测试.py:-

import pandas as pd

a = [x * 2 for x in [1, 2, 3, 4]]

def return_out():
    return a

实际的python脚本

exec_dict = {}
exec(open('C:\\Temp\\test.py').read(), exec_dict)

现在要打印方法return\u的值,您可以用途:-你知道吗

exec_dict['return_out']()
Out[41]: [2, 4, 6, 8]

或获取变量a:-

 exec_dict['a']
 Out[40]: [2, 4, 6, 8]

这将适用于python2和python3的python版本

如果您愿意牺牲标准输出而不使用print语句,我相信您可以使用

python -i tempcode.py

您可以在执行时使用-i命令行参数,这将执行您的代码,并在最后提供控制,而不必重写REPL中的整个文件。您将能够像往常一样访问文件中的所有变量和其他内容。你知道吗

您可以在python文档here中找到更多信息

相关问题 更多 >