我正在尝试为我在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)
它运作良好,但我仍然对替代解决方案感兴趣.
我已经安装了Windows 8消费者预览版.尝试从服务控制台管理器启动"交互式检测服务"时,我遇到了以下问题.
"交互式服务检测服务因以下错误而终止:功能不正确."
我在管理员从RDP远程登录时运行.我怎么能够启动/停止其他服务.
我想在python中实现一个快速滚动时间跟踪工具.时间跟踪数据已经全部存储在numpy数组中并且很大(> 1e6个样本).我需要一个快速视觉检查的工具.
我已经尝试过使用Matplotlib + PySide,但更新速度还不够快.
你能在pygraphqt/chaco/quiqwt等其他工具包中重现Matplotlib + Pyside演示吗?我不知道他们中的任何一个,我愿意学习在这个应用程序中表现更好的那个.
为了在我的工作流程中有用,所选框架应允许从交互式ipython会话运行绘图,并且应该是快速且可扩展的(最终我需要在同一窗口上同步滚动多个图).原则上pyqtgraph,guiqwt或chaco都是好的候选人.但让我们判断一个真实的例子.
谢谢.
我遇到了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) 我想要类似'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)
我想创建几个图,然后按顺序显示它们 - 提示用户点击以查看所有图.
我希望能够浏览许多图表,这些图表是3维以上的模拟结果.我通过Python使用Bokeh包.
为简单起见,我们假设我有两个维度:d和nc.但是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) 从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) 我正在学习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)
我需要一个循环方案来制作类似的东西
我如何自动与命令行程序进行交互,这些命令行程序使用Perl 6公开文本终端接口以进行测试?
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.
What makes the difference? Is it a rule of thumb that …