标签: interactive

如何向Python交互式shell添加命令?

我正在尝试为我在Python中定期输入的命令保存一些按键.

在我的python启动脚本中,我定义了一个名为load的函数,它类似于import,但增加了一些功能.它需要一个字符串:

def load(s):
  # Do some stuff
  return something
Run Code Online (Sandbox Code Playgroud)

为了调用这个函数,我必须输入

>>> load('something')
Run Code Online (Sandbox Code Playgroud)

我宁愿能够简单地输入:

>>> load something
Run Code Online (Sandbox Code Playgroud)

我正在运行带有readline支持的Python ,所以我知道那里存在一些可编程性,但我不知道是否可以使用它.

我尝试通过InteractivConsole在我的启动文件中使用并创建它的实例来解决这个问题,如下所示:

import code, re, traceback

class LoadingInteractiveConsole(code.InteractiveConsole):
  def raw_input(self, prompt = ""):
    s = raw_input(prompt)
    match = re.match('^load\s+(.+)', s)
    if match:
      module = match.group(1)
      try:
        load(module)
        print "Loaded " + module
      except ImportError:
        traceback.print_exc()
      return ''
    else:
      return s

console = LoadingInteractiveConsole()
console.interact("")
Run Code Online (Sandbox Code Playgroud)

这有点需要注意,我必须按两次Ctrl-D才能退出python解释器:一次退出我的自定义控制台,一次退出真正的控制台.

有没有办法在不编写自定义C程序并将解释器嵌入其中的情况下执行此操作?

编辑

在频道之外,我有建议将其附加到我的启动文件的末尾:

import sys
sys.exit()
Run Code Online (Sandbox Code Playgroud)

它运作良好,但我仍然对替代解决方案感兴趣.

python interactive cpython readline

2
推荐指数
1
解决办法
1874
查看次数

Windows 8 beta中的交互式检测服务

我已经安装了Windows 8消费者预览版.尝试从服务控制台管理器启动"交互式检测服务"时,我遇到了以下问题.

"交互式服务检测服务因以下错误而终止:功能不正确."

我在管理员从RDP远程登录时运行.我怎么能够启动/停止其他服务.

windows service interactive

2
推荐指数
1
解决办法
4474
查看次数

pyqtgraph/chaco/guiqwt:快速滚动时间跟踪演示

我想在python中实现一个快速滚动时间跟踪工具.时间跟踪数据已经全部存储在numpy数组中并且很大(> 1e6个样本).我需要一个快速视觉检查的工具.

已经尝试过使用Matplotlib + PySide,但更新速度还不够快.

你能在pygraphqt/chaco/quiqwt等其他工具包中重现Matplotlib + Pyside演示吗?我不知道他们中的任何一个,我愿意学习在这个应用程序中表现更好的那个.

为了在我的工作流程中有用,所选框架应允许从交互式ipython会话运行绘图,并且应该是快速且可扩展的(最终我需要在同一窗口上同步滚动多个图).原则上pyqtgraph,guiqwt或chaco都是好的候选人.但让我们判断一个真实的例子.

谢谢.

python interactive pyside chaco pyqtgraph

2
推荐指数
1
解决办法
2604
查看次数

nvd3 chart.useInteractiveGuideline(true); 没有正确更新

我遇到了nvd3的问题,我正在获得一个正确渲染的折线图,但是交互式指南似乎没有正常工作.目前,当它被渲染并且我将鼠标移动到图表上时,它仅显示第一个日期和最后一个日期.任何帮助将不胜感激.

码:

<script src="forecast/static/nvd3/lib/d3.v3.js"></script>
<script src="forecast/static/nvd3/nv.d3.js"></script>
<script src="forecast/static/nvd3/src/core.js"></script>
<script src="forecast/static/nvd3/src/tooltip.js"></script>
<script src="forecast/static/nvd3/src/utils.js"></script>
<script src="forecast/static/nvd3/src/interactiveLayer.js"></script>
<script src="forecast/static/nvd3/src/models/legend.js"></script>
<script src="forecast/static/nvd3/src/models/axis.js"></script>
<script src="forecast/static/nvd3/src/models/scatter.js"></script>
<script src="forecast/static/nvd3/src/models/line.js"></script>
<script src="forecast/static/nvd3/src/models/lineChart.js"></script>
<link type="text/css" rel="stylesheet" href="forecast/static/nvd3/nv.d3.css" />

<title>Foreign Exchange</title>

<body>
<h1>Foreign Exchange</h1>

<div id="chartZoom">
    <a href="#" id="zoomIn">Zoom In</a> <a href="#" id="zoomOut">Zoom Out</a>
</div>

<div id="fx" class='with-transitions'>
    <svg></svg>
</div>

</body>
<script type="text/javascript">
nv.addGraph(function() {
var chart = nv.models.lineChart();
var fitScreen = false;
var width = 600;
var height = 300;
var zoom = 1;

chart.useInteractiveGuideline(true);
chart.xAxis
    .axisLabel('Time (days)')
    .rotateLabels(-45) …
Run Code Online (Sandbox Code Playgroud)

javascript interactive d3.js nvd3.js

2
推荐指数
1
解决办法
6035
查看次数

如何编写一个按顺序显示绘图的R函数?

我想要类似'plot.lm'功能的东西.

y <- rnorm(100, 0, 1)
x <- rnorm(100, 0, 1.5)

mod <- lm(y ~ x)

plot(mod)

Hit <Return> to see next plot: 
Hit <Return> to see next plot: 
Hit <Return> to see next plot: 
Hit <Return> to see next plot:
Run Code Online (Sandbox Code Playgroud)

我想创建几个图,然后按顺序显示它们 - 提示用户点击以查看所有图.

plot interactive r prompt sequential

2
推荐指数
1
解决办法
943
查看次数

与Bokeh相关的滑块,如何编写回调

我希望能够浏览许多图表,这些图表是3维以上的模拟结果.我通过Python使用Bokeh包.

为简单起见,我们假设我有两个维度:dnc.但是nc以下列方式依赖于d:

if d=100, nc=56,57
if d=20, nc=5,6
Run Code Online (Sandbox Code Playgroud)

我有4张照片:

 d_100_nc_56.png, 
 d_100_nc_57.png, 
 d_20_nc_5.png,
 d_20_nc_6.png
Run Code Online (Sandbox Code Playgroud)

所以我想要两个滑块,一个用于d,一个用于nc,通过Bokeh.plotting.Figure的image_url函数循环.png图像.但是,当我更改d中的滑块时,nc滑块的值应自行更新

from bokeh.io import vform
from bokeh.models import CustomJS, ColumnDataSource, Slider
from bokeh.plotting import Figure, output_file, show

output_file('image.html')

source = ColumnDataSource(data=dict(url=['d_100_nc_55.png']))

p = Figure(x_range=(0,1), y_range=(0,1))

callback_nc = CustomJS(args=dict(source=source),  code="""
    var data = source.get('data');
    var f = cb_obj.get('value')
    old = data['url'][0]
    to_replace=old.substring(old.lastIndexOf("nc_")+3,old.lastIndexOf(".png"))

    data['url'][0] = old.replace(to_replace,f.toString(10))
    source.trigger('change');
""")

callback_d = CustomJS(args=dict(source=source), code="""
    var data = source.get('data');
    var …
Run Code Online (Sandbox Code Playgroud)

javascript python interactive slider bokeh

2
推荐指数
1
解决办法
1429
查看次数

传单 - 随着时间的推移交互式等值线图

从2000年到2010年,我有30多个地区的密度数据.我想为每年创建一个交互式的等值区域地图,然后使用滑块(理想情况下)或单选按钮来选择年份.

我可以在第一年获得互动,但不会在其他年份的层次上.你可以在这里看到一个有用的例子,但是让我在下面提供一些细节:

为简单起见,请考虑两年.blocks1995具有非重叠多边形BlockA和BlockB(两个区)并blocks1996具有相同的块.他们有一个叫做density产生等值的财产:

var blocks1995 = {
    "type": "FeatureCollection",
    "crs": {
        "type": "name",
        "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" }
    },
    "features": [{
        "type": "Feature",
        "properties": { "time": 1995, "density": 3.1, "nameB": "BlockA" },
        "geometry": {
            "type": "Polygon",
            "coordinates": [[[50.0, 29.0],[50.0, 29.99],[50.51, 29.99],[50.0, 29.0]]]
        }
    }, {
        "type": "Feature",
        "properties": { "time": 1995, "density": 1.1, "nameB": "BlockB" },
        "geometry": {
            "type": "Polygon",
            "coordinates": [[[50.01, 30.0],[50.52, 30.0],[50.52, 30.5]]]
        }
    }]
};

var blocks1996 …
Run Code Online (Sandbox Code Playgroud)

javascript interactive geo leaflet choropleth

2
推荐指数
1
解决办法
993
查看次数

如何制作互动节目?

我正在学习Ocaml,我需要创建一个可以通过以下方式与用户交互的程序:

Program: "Welcome!"
User: command1 arg1 arg2
program: "The answer is..."
User: command2 arg
program: "The answer is..."
User: exit
Run Code Online (Sandbox Code Playgroud)

我需要一个循环方案来制作类似的东西

ocaml functional-programming interactive input

2
推荐指数
1
解决办法
275
查看次数

Perl 6:基于终端的程序的自动测试

我如何自动与命令行程序进行交互,这些命令行程序使用Perl 6公开文本终端接口以进行测试?

testing terminal interactive perl6

2
推荐指数
1
解决办法
147
查看次数

Should I avoid using interactive mode?

Haskell newbie here. I use ghci to implement a baby quicksort algorithm [1] as follows:

Prelude> quicksort (firstx:xs) = quicksort[x|x<-xs, x<firstx] ++ [firstx] ++ quicksort[x|x<-xs, not(x<firstx)]
Prelude> quicksort [] = []
Run Code Online (Sandbox Code Playgroud)

The command quicksort [1,2,3] then gives an error:

*** Exception: :8:1-17: Non-exhaustive patterns in function quicksort

However, typing the exact same thing in an quicksort.hs file and running $ ghci quicksort.hs do not yield such an error.

Question

What makes the difference? Is it a rule of thumb that …

haskell interactive

2
推荐指数
1
解决办法
65
查看次数