小编blz*_*blz的帖子

如何使用正则表达式在python字符串中找到str.format的所有占位符?

我正在创建一个使用用户指定的格式重命名文件的类.这种格式将是一个简单的字符串,其str.format方法将被调用以填充空白.

事实证明,我的程序将需要提取大括号中包含的变量名称.例如,字符串可能包含{user},应该产生user.当然,单个字符串中会有几组大括号,我需要按照它们出现的顺序获取每个大括号的内容并将它们输出到列表中.

因此,"{foo}{bar}"应该屈服['foo', 'bar'].

我怀疑最简单的方法是使用re.split,但我对正则表达式一无所知.有人可以帮我吗?

提前致谢!

python regex

9
推荐指数
2
解决办法
2977
查看次数

如何将hist2d图的无数据区域设置为零值颜色?

我正在跟踪某个主题对计算机屏幕指定区域的注视.我正在使用pyplot hist2d函数构建凝视热图.

这是一个简单的例子:

figure()
hist2d(xval, yval, bins=1000)
xlim([-6, 6])
ylim([-4.5, 4.5])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如您所见,我的数据范围之外还有一个重要区域.但是,我想将此区域设置为指示零值的蓝色.

我的第一次尝试imshow可以在这里看到:

figure()
imshow(np.array([[0] * 8] * 12), extent=[-6, 6, -4.5, 4.5])
hist2d(xval, yval, bins=1000)
xlim([-6, 6])
ylim([-4.5, 4.5])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这种工作,但在我的数据范围的边界留下了一条丑陋的垂直线.

我的问题如下:

  1. 有没有办法用零值蓝色填充数字,同时避免imshow调用
  2. 如果没有,我该如何隐藏垂直线?

python matplotlib histogram

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

为什么我收到超大记录TLS错误?

我正在尝试使用go-xmpp连接DuckDuckGo的XMPP服务.

以下是我的测试用例:

package main

import (
    "crypto/tls"
    "log"

    "github.com/mattn/go-xmpp"
)

const (
    svr = "dukgo.com"
    usr = "testtesttest"
    pwd = "test123"
)

func main() {
    xmpp.DefaultConfig = tls.Config{
        ServerName:         svr,
        InsecureSkipVerify: false,
    }

    options := xmpp.Options{
        Host:     svr,
        User:     usr,
        Password: pwd,
    }

    _, err := options.NewClient()
    if err != nil {
        log.Fatal(err)
    }
}
Run Code Online (Sandbox Code Playgroud)

log.Fatal块正在执行并返回以下错误消息:

2016/08/24 16:32:27 tls: oversized record received with length 28012
exit status 1
Run Code Online (Sandbox Code Playgroud)

谷歌搜索错误指向我在Docker中的相同错误,所以这不是很有帮助.这个错误是什么意思?我该怎么做才能解决这个问题?

ssl go tls1.2

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

为什么Twisted的adbapi无法从单元测试中恢复数据?

概观

上下文

我正在为一些依赖于写入SQLite3数据库的高阶逻辑编写单元测试.为此,我正在使用twisted.trial.unittesttwisted.enterprise.adbapi.ConnectionPool.

问题陈述

我能够创建一个持久的sqlite3数据库并在其中存储数据.使用sqlitebrowser,我能够验证数据是否按预期保持不变.

问题是调用t.e.a.ConnectionPool.run*(例如:) runQuery返回一组空结果,但仅在从a内调用时才返回TestCase.

备注和重要细节

我遇到的问题只发生在Twisted的trial框架内.我第一次尝试调试是将数据库代码从单元测试中拉出来并将其放入一个独立的测试/调试脚本中.所述脚本按预期工作,而单元测试代码则没有(参见下面的示例).

案例1:行为不当单位测试

init.sql

这是用于初始化数据库的脚本.这个文件没有(明显的)错误.

CREATE TABLE ajxp_changes ( seq INTEGER PRIMARY KEY AUTOINCREMENT, node_id NUMERIC, type TEXT, source TEXT, target TEXT, deleted_md5 TEXT );
CREATE TABLE ajxp_index ( node_id INTEGER PRIMARY KEY AUTOINCREMENT, node_path TEXT, bytesize NUMERIC, md5 TEXT, mtime NUMERIC, stat_result BLOB);
CREATE TABLE ajxp_last_buffer ( id INTEGER PRIMARY KEY AUTOINCREMENT, type …
Run Code Online (Sandbox Code Playgroud)

python sqlite unit-testing twisted python-db-api

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

如何使用pyYAML将python元组添加到YAML文件中?

标题相当不言自明.

当我将元组保存到YAML文件时,我得到的内容如下所示:

ambient:  !!python/tuple [0.3, 0.3 ,0.3]
Run Code Online (Sandbox Code Playgroud)

当我尝试使用yaml.safe_load(file_object)加载它时,我不断收到如下错误:

yaml.constructor.ConstructorError:  could not determine a constructor for the tag 'tag:yaml.org,2002:python/tuple'
Run Code Online (Sandbox Code Playgroud)

需要做什么?

python pyyaml

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

从字符串中删除html图像标记及其间的所有内容

我已经看到了一些关于从字符串中删除HTML标记的问题,但我仍然不清楚应该如何处理我的特定情况.

我已经看到许多帖子建议不要使用正则表达式来处理HTML,但我怀疑我的案例可能会明智地规避这条规则.

我正在尝试解析PDF文件,并且我已经成功地将每个页面从我的示例PDF文件转换为UTF-32文本字符串.当图像出现时,会插入一个HTML样式的标签,其中包含图像的名称和位置(在其他地方保存).

在我的应用程序的一个单独部分,我需要摆脱这些图像标签.因为我们处理图像标签,所以我怀疑可能需要使用正则表达式.

我的问题是双重的:

  1. 我应该使用正则表达式来删除这些标记,还是应该使用像BeautifulSoup这样的HTML解析模块?
  2. 我应该使用哪种正则表达式或BeautifulSoup结构?换句话说,我该怎么编码呢?

为清楚起见,标签的结构为 <img src="/path/to/file"/>

谢谢!

html python regex beautifulsoup

7
推荐指数
1
解决办法
6143
查看次数

在类定义中执行语句:解释器知道哪些变量?

以下是我的部分类定义:

class Trial:
    font = pygame.font.Font(None, font_size)
    target_dic = {let: font.render(let, True, WHITE, BG) for let in list("ABCDEFGHJKLMNPRSTUVWX")}
Run Code Online (Sandbox Code Playgroud)

部分类定义的最后一行target_dic = {let: font.render(let, True, WHITE, BG) for let in list("ABCDEFGHJKLMNPRSTUVWX")返回错误:未定义全局名称"font".很公平.

但是,我尝试了以下测试用例并没有出现错误:

class x:
    dat = 1
    datlist = [dat for i in range(10)]
Run Code Online (Sandbox Code Playgroud)

为什么第一种情况不起作用?font到达字典理解时,成员是否存在?

我是否需要将这些操作移动到__init__或者是否可以在创建类对象时准确定义列表一次?

编辑:

为清楚起见,我希望能够在类对象创建时填充列表,以减少创建试用对象所花费的时间.

python

7
推荐指数
1
解决办法
1103
查看次数

如何使用statsmodels执行双向重复测量anova?

我找到了这个例子,它解释了如何执行双向ANOVA.我想知道如何为重复测量设计做同样的事情.

我确实看到了这个问题,但我不能假设我重复测量的独立性.

我正在使用statsmodels版本0.5.0.dev-Unknown.

理想情况下,我想使用statsmodels,但如果有一个可行的解决方案使用另一个库,我也有兴趣听到它.

提前致谢!

python statistics statsmodels

7
推荐指数
1
解决办法
4114
查看次数

为什么我的scoped_session引发了AttributeError:'Session'对象没有属性'remove'

我正在尝试建立一个系统,优雅地将数据库操作推迟到一个单独的线程,以避免在Twisted回调期间阻塞.

到目前为止,这是我的方法:

from contextlib import contextmanager

from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker

from twisted.internet.threads import deferToThread

_engine = create_engine(initialization_string)
Session = scoped_session(sessionmaker(bind=_engine))


@contextmanager
def transaction_context():
    session = Session()
    try:
        yield session
        session.commit()
    except:
        # No need to do session.rollback().  session.remove will do it.
        raise
    finally:
        session.remove()


def threaded(fn):
    @wraps(fn)
    def wrapper(*args, **kwargs):
        return deferToThread(fn, *args, **kwargs)
    return wrapper
Run Code Online (Sandbox Code Playgroud)

这应该允许我用threaded装饰器包装一个函数,然后transaction_context在所述函数体中使用上下文管理器.以下是一个例子:

from __future__ import print_function
from my_lib.orm import User, transaction_context, threaded
from twisted.internet import reactor …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy

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

如何从scipy.io创建Matlab结构数组?

考虑以下Matlab代码:

pmod(1).name{1}  = 'regressor1';
pmod(1).param{1} = [1 2 4 5 6];
pmod(1).poly{1}  = 1; 
pmod(2).name{1}  = 'regressor2-1';
pmod(2).param{1} = [1 3 5 7]; 
pmod(2).poly{1}  = 1;
Run Code Online (Sandbox Code Playgroud)

这会创建一个struct数组.数组中的每个结构包含三个类型的字段cell.因此,我们在以下层次结构中pmod:

pmod  // struct array
|
*- struct
|  |
|  *- cell  // contains 1 or more strings
|  *- cell  // contains 1 or more arrays
|  *- cell  // contains 1 or more arrays
|
*- struct [...]
Run Code Online (Sandbox Code Playgroud)

我正在尝试用scipy.ioPython生成上述数据结构,这样它们就可以加载到Matlab中(SPM需要这种层次结构).

创建一个结构是很简单的,因为scipy.io.savemat保存任何类型的dict str …

python matlab scipy

7
推荐指数
1
解决办法
2189
查看次数