小编Pyt*_*nic的帖子

从交替的边循环列表

给出一个清单

a = [0,1,2,3,4,5,6,7,8,9]
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到

b = [0,9,1,8,2,7,3,6,4,5]
Run Code Online (Sandbox Code Playgroud)

也就是说,产生一个新的列表,其中每个连续的元素交替地从原始列表的两边取出?

python iteration algorithm list

27
推荐指数
7
解决办法
2128
查看次数

Flask - 如何通过路由器在外部看到应用程序?

问题简而言之

如何从一台从无线路由器访问互联网的主机PC上运行一个基于Flask的简单网站?

问题详情

根据快速入门指南,我想在互联网上看到一个烧瓶应用程序.

如果我在下面启动简单的Flask应用程序,它可以从与主机pc相同的网络上的计算机访问,但不能通过互联网通过另一个网络连接的设备访问.

问题类似于此处此处讨论的问题,添加的元素从家用PC运行似乎表明外部连接指向路由器的xx端口,而不是主机pc的xx端口,如建议的那样在这篇文章的评论中.

我做了什么

参考下面的代码,这是我做的:

  • 在控制面板中检查了我的IP地址
  • 禁用防病毒中的所有网络保护
  • 运行`ipconfig/all',在Windows机器上运行
  • 最后在连接到另一个网络的设备中打开浏览器,并将其指向相应的IP:端口地址

结果是"网页不可用".

有人遇到过同样的问题吗?这是路由器问题吗?

参考Flask app

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run(host= '0.0.0.0', port=9000, debug=False)
Run Code Online (Sandbox Code Playgroud)

python router httpserver flask python-2.7

14
推荐指数
1
解决办法
1万
查看次数

散景 - 如何点击和拖动?

我想点击并拖动散点图散点图的点.任何想法如何做到这一点?

(编辑:这是我想做的一个例子)

有关散点的示例,下面的代码会生成在此页面中间找到的散点图.

from bokeh.plotting import figure, output_file, show

# create a Figure object
p = figure(width=300, height=300, tools="pan,reset,save")

# add a Circle renderer to this figure
p.circle([1, 2.5, 3, 2], [2, 3, 1, 1.5], radius=0.3, alpha=0.5)

# specify how to output the plot(s)
output_file("foo.html")

# display the figure
show(p)
Run Code Online (Sandbox Code Playgroud)

python bokeh

8
推荐指数
1
解决办法
2395
查看次数

Bokeh工具无法在QWebView中运行

下午好

[ 多年阅读后第一次发布stackoverflow.精彩!]

我使用bokeh生成html代码,我在一个非常简单的PyQt4 GUI中输入QWebView.散景图顶部的标准工具在QWebView中不起作用,如果我在任何标准浏览器(在我的情况下,Chrome)中打开相同的html代码它们都能正常工作.

详细示例:

我正在使用以下从旧的Bokeh用户指南示例中获取的片段来测试该问题(可在此处找到最新的用户指南):

from bokeh.plotting import figure
from bokeh.resources import CDN, INLINE
from bokeh.embed import file_html

# [other code...]

f = figure()
f.circle([1, 2.5, 3, 2], [2, 3, 1, 1.5], radius=0.3, alpha=0.5)        
html = file_html(f, CDN, "my plot")
Run Code Online (Sandbox Code Playgroud)

然后将'html'片段输入嵌入GUI中的名为'self.web'的QtWebKit.QWebView实例:

self.web.setHtml(html)
Run Code Online (Sandbox Code Playgroud)

图表显示正常,但工具处于非活动状态:

i)选择"平移"工具并单击并拖动以平移图表,

ii)选择了"滚轮"工具,但滚动滚轮不会缩放图表,

iii)单击任何其他工具('调整大小','框缩放','保存')不会成功选择该工具

知道在QWebView中使(静态)散景html工作需要什么设置吗?

我搜索了相关的问题,并试图工作的QWebView的属性(例如设置QtWebKit.QWebSettings.JavascriptEnabled为True),没有效果.

非常感谢您的帮助.

(环境是:Python 2.7.8,Anaconda 2.1.0(64位),PyQt4)

pyqt4 qwebview python-2.7 anaconda bokeh

5
推荐指数
0
解决办法
600
查看次数

Youtube + Selenium(Python) - 如何知道视频何时结束?

[编辑:已解决,请参阅问题文本中途]

有关了解Youtube页面内容的快速提问:播放视频:

综上所述

我使用Selenium在Youtube上播放视频,作为基于浏览器的GUI的一部分.

我需要知道视频何时播放完毕,因为GUI会执行其他操作(例如,在浏览器中提供本地HTML).

代码段和问题

import os, time
from selenium import webdriver

# [...]
chromedriver = 'path_to_chromedriver_binary'  # substitute as appropriate
driver = webdriver.Chrome(chromedriver)
youtube_link = 'https://www.youtube.com/watch?v=somevideo'
driver.get(youtube_link)
Run Code Online (Sandbox Code Playgroud)

此时我可以time.wait()查看视频的长度.

但是,我想知道我是否可以通过selenium驱动程序查询youtube页面并测量while循环中播放的剩余时间(我不熟悉如何从youtube页面中提取此信息)

谢谢!

[编辑解决方案]

硒溶液

感谢Stanjer,以及这个答案其他答案,您可以movie_player通过此方法获得状态:

player_status = driver.execute_script("return document.getElementById('movie_player').getPlayerState()")
Run Code Online (Sandbox Code Playgroud)

(别忘了在脚本开头添加"return")

硒替代解决方案

不太优雅但值得指出: driver.text以字符串格式"1:00/2:00"返回表示视频计时器的字符串.因此,您可以检查视频是否通过以下内容播放:

video_is_playing = True
while video_is_playing:
    time.sleep(1)
    video_is_playing = not(driver.text[:4] == driver.text[-4:])
Run Code Online (Sandbox Code Playgroud)

[编辑]根据Jose的评论,此信息也可以通过以下方式访问:

driver.find_element_by_class_name("ytp-time-current").text
Run Code Online (Sandbox Code Playgroud)

并发症和下一个问题

我需要以最大化格式打开视频,并使用自动播放.

这意味着我调用以下url:

youtube.com/v/<video_code>?rel=0&autoplay=1
Run Code Online (Sandbox Code Playgroud)

但是这会返回一个非常短的html,它只包含一个嵌入代码,例如:

<HTML><HEAD></HEAD>
    <BODY leftMargin=0 scroll=no topMargin=0>
        <EMBED height="100%" 
        type=application/x-shockwave-flash 
        width="100%" 
        src=https://www.youtube.com/v/Fsc-oT9PsSQ?rel=0&amp;autoplay=1 …
Run Code Online (Sandbox Code Playgroud)

youtube selenium python-2.7 selenium-webdriver

5
推荐指数
1
解决办法
6946
查看次数

Anaconda - 在环境中安装blpapi

我有py2.7作为我原来的Anaconda安装,并在名为的环境中安装了py3.4 py3.

我似乎无法blpapipy3环境中安装Bloomberg API库.

一旦我activate py3,conda install blpapi找不到包,而pip install blpapi却对我说:

Requirement already satisfied: blpapi in C:\users\pythonic\programs\anaconda\lib\site-packages
Run Code Online (Sandbox Code Playgroud)

因为它找到了为python 2.7安装的软件包

如果我尝试从这里通过可执行文件安装它告诉我它在注册表中找不到python 3.4.

我该如何安装这个包?

编辑

显然DSM频道不再具有py3.5版本,但这个频道确实如此

https://anaconda.org/macinv/blpapi/files

python bloomberg python-3.x anaconda conda

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

将不同的样式表应用于模板的不同元素

我在Flask模板中嵌入了散景图.该应用程序使用主样式表,而图表需要自己的样式.

主样式表泄漏到图表中并更改其外观.如何将不同的样式应用于模板中的不同部分,以便只有一种样式处于活动状态?


有关更多代码和图像,请参阅Bokeh邮件列表中的我的问题.

这是拉入图表对象的模板代码. resources,, scriptdiv是图表库生成的对象元素.

{% extends "base.html" %}
{% block content %}
    <frame>
    <head>
        <meta charset='utf-8' />
        <meta http-equiv='content-type' content='text/html; charset=utf-8' />
        {{ resources|indent(4)|safe }}        
        {{ script|indent(4)|safe }}
    </head>
    <body>
        {{ div|indent(4)|safe }}
    </body>
    </frame>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

html css python flask bokeh

0
推荐指数
1
解决办法
95
查看次数

正则表达式-替换括号内的点

我需要re用另一个字符串替换括号内的点:

a = 'hello.mate(how.are.you)'
Run Code Online (Sandbox Code Playgroud)

b = 'hello.mate(how|DOT|are|DOT|you)
Run Code Online (Sandbox Code Playgroud)

我试图用/(突出显示方括号的开始和/)结束,但是我不清楚如何捕捉中间的简单点。

两个最相关的例子

这两个问题显然都面临着完全相同的问题,尤其是问题2,但我似乎无法只捕捉到一个点。 re.sub

正则表达式替换python中分隔符之间的文本

正则表达式使用Python将浮点数替换为“点”

尝试的解决方案

基于以上示例的各种无效尝试包括:

b = re.sub(r'\(.\)','|DOT|', a)
b = re.sub(r'\(\.\)','|DOT|', a)
b = re.sub(r'\([.]\)','|DOT|', a)
b = re.sub(r'\([\.]\)','|DOT|', a)
Run Code Online (Sandbox Code Playgroud)

python regex

0
推荐指数
1
解决办法
128
查看次数