当前位置: 首页 > 面试题库 >

模拟交互式python会话

丁志勇
2023-03-14
问题内容

如何 使用文件输入 模拟python交互式会话并保存抄本?换句话说,如果我有一个文件sample.py

#
# this is a python script
#
def foo(x,y):
   return x+y

a=1
b=2

c=foo(a,b)

c

我想得到sample.py.out看起来像这样(省略python横幅):

>>> #
... # this is a python script
... #
... def foo(x,y):
...    return x+y
... 
>>> a=1
>>> b=2
>>> 
>>> c=foo(a,b)
>>> 
>>> c
3
>>>

我尝试将stdin喂入python,twitter的建议是“
bash脚本”,没有详细信息(在bash中使用script命令播放,没有乐趣)。我觉得应该很容易,但我缺少一些简单的东西。我需要使用exec或编写解析器吗?

Python或ipython解决方案就可以了。然后,我可能想转换为html并在网络浏览器中突出显示语法,但这是另一个问题…。


问题答案:

我认为code.interact会起作用:

from __future__ import print_function
import code
import fileinput


def show(input):
    lines = iter(input)

    def readline(prompt):
        try:
            command = next(lines).rstrip('\n')
        except StopIteration:
            raise EOFError()
        print(prompt, command, sep='')
        return command

    code.interact(readfunc=readline)


if __name__=="__main__":
    show(fileinput.input())

(我更新了代码以使用,fileinput以便从stdin或读取,sys.argv并使其在python 2和3下运行。)



 类似资料:
  • 问题内容: 我发现自己经常使用Python的解释器来处理数据库,文件等- 基本上是半结构化数据的许多手动格式化。我没有按照我的意愿正确地保存和清理有用的位。有没有一种方法可以将我的输入保存到外壳中(数据库连接,变量分配,很少用于循环和逻辑位)-交互式会话的一些历史记录?如果我使用类似的东西,则会收到过多的标准输出噪音。我真的不需要腌制所有对象- 尽管如果有解决方案,那就可以了。理想情况下,我只剩下

  • 本文向大家介绍对命令行模式与python交互模式介绍,包括了对命令行模式与python交互模式介绍的使用技巧和注意事项,需要的朋友参考一下 命令行模式与python交互模式 1.在命令行模式下,可以执行 python 进入 Python 交互式环境,也可以执 行 python hello.py 运行一个.py 文件。 2.在 Python 交互式环境下,只能输入 Python 代码并立刻执行。 3

  • 问题内容: 在Python脚本中,是否有任何方法可以判断解释器是否处于交互模式?这将很有用,例如,当您运行交互式Python会话并导入模块时,将执行略有不同的代码(例如,关闭日志记录)。 我已经看过判断python是否处于-i模式并在那里尝试了代码,但是,该函数仅在使用- i标志调用了Python的情况下才返回true,而在用于调用交互模式的命令没有参数时则返回true 。 我的意思是这样的: 问

  • 问题内容: 我以为Python交互模式下的显示总是等效的,但是事实并非如此。这是语言功能还是我缺少什么?谢谢 问题答案: 是的,此行为是故意的。 来自Python文档 7.1。表达陈述 Expression语句(通常是交互式地)用于计算和写入值,或(通常)用于调用过程(一个不返回有意义结果的函数;在Python中,过程返回value )。表达式语句的其他用法是允许的,有时是有用的。表达式语句的语法

  • 原文:Interactive navigation 所有图形窗口都带有导航工具栏,可用于浏览数据集。 以下是工具栏底部的每个按钮的说明: Home(首页)、Forward(前进)和Back(后退)按钮: 这些类似于 Web 浏览器的前进和后退按钮。 它们用于在之前定义的视图之间来回浏览。 它们没有意义,除非你已经使用平移和缩放按钮访问了其他地方。 这类似于尝试在访问新页面之前单击 Web 浏览器上

  • 问题内容: 我想在使用redis的python中编写应用程序。我用谷歌搜索,但找不到任何结果。通常,我这样做: 然后做所有获取和设置。但是我可以在redis中做这样的事情吗: 我的意思是,我想使用两个或多个实例,每个实例存储不同的内容(例如,rs1用于URL,rs2用于标题,等等。)。我也想知道如何删除所有键(例如在rs1中删除所有记录)。有什么好的教程,资源吗?注意:我需要使用redis,因为我