小编use*_*743的帖子

Python re.sub():如何用'你'替换所有'你'或'你'

我正在使用python和正则表达式进行一些文本规范化.我想用'你'替换所有'你'或'你'.这是我到目前为止所做的:

import re
text = 'how are u? umberella u! u. U. U@ U# u '
print re.sub (' [u|U][s,.,?,!,W,#,@ (^a-zA-Z)]', ' you ', text)
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:

how are you  you berella you  you  you  you  you  you
Run Code Online (Sandbox Code Playgroud)

正如你所看到的那样,'umberella'被改为'berella'.另外我想保留'u'之后出现的角色.例如,我想要'你!' 被改为'你!'.任何人都可以告诉我我做错了什么,写正则表达式的最佳方法是什么?

python regex

43
推荐指数
2
解决办法
16万
查看次数

如何编写Twisted客户端插件

我曾经习惯twisted实现客户端.它工作正常.现在我希望能够将命令行参数传递给它,所以我需要实现一个twisted 插件.我已经执行了很多搜索来查找将显示如何将程序转换为插件的资源.但是我找不到我想要的东西.

这是我的client.py代码的相关部分:

import sys
import time
import os
import errno
import re
from stat import *
global runPath

runPath = '/home/a02/Desktop/'

from twisted.python import log
from GlobalVariables import *
from twisted.internet import reactor, threads, endpoints
from time import sleep
from twisted.internet.protocol import ClientFactory# , Protocol
from twisted.protocols import basic
import copy


class MyChat(basic.LineReceiver):
    def connectionMade(self):
        print "Connected to the server!"
        EchoClientFactory.buildClientObject(self.factory, self)
        self.runPythonCommands = RunPythonCommands ()
        return

    def connectionLost(self, reason):
        print "Lost Connection With …
Run Code Online (Sandbox Code Playgroud)

python twisted

34
推荐指数
1
解决办法
1041
查看次数

ctime、atime 和 mtime - 如何解释它们?

我正在用 Python 编写一个程序,需要比较几个目录的 atime、mtime 和 ctime。为此,我正在使用os.stat("my_directory/"). 结果我得到的是一个包含这些时间的字符串。对于示例目录,我有:

st_atime=1418911410L
st_mtime=1418911410L
st_ctime=1404656050L
Run Code Online (Sandbox Code Playgroud)

我的问题是我对这些数字有些困惑。我想知道这些数字是否可以转换为实际时间?或者,如果一个数字(比如 ctime)比另一个小(比如 atime),这是否意味着 ctime 早于 atime 或更晚?我已经搜索了许多网站来了解这一点,但我的尝试没有成功。有人可以帮助我吗?提前致谢。

python linux

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

如何在python中使用插值绘制精度回忆曲线?

我使用sklearn precision_recall_curve函数和matplotlib包绘制了一个精确回忆曲线.对于那些你谁是熟悉的精确召回曲线,你知道一些科学界只能接受它,当它插入,与此类似例子在这里.现在我的问题是,如果你们中的任何人知道如何在python中进行插值?我一直在寻找解决方案,但没有成功!任何帮助将不胜感激.

解决方案: @francis和@ali_m的两个解决方案都是正确的,并且一起解决了我的问题.因此,假设您从precision_recall_curve函数中获得输出sklearn,这是我绘制图形的方法:

        precision["micro"], recall["micro"], _ = precision_recall_curve(y_test.ravel(),scores.ravel())
        pr = copy.deepcopy(precision[0])
        rec = copy.deepcopy(recall[0])
        prInv = np.fliplr([pr])[0]
        recInv = np.fliplr([rec])[0]
        j = rec.shape[0]-2
        while j>=0:
            if prInv[j+1]>prInv[j]:
                prInv[j]=prInv[j+1]
            j=j-1
        decreasing_max_precision = np.maximum.accumulate(prInv[::-1])[::-1]
        plt.plot(recInv, decreasing_max_precision, marker= markers[mcounter], label=methodNames[countOfMethods]+': AUC={0:0.2f}'.format(average_precision[0]))
Run Code Online (Sandbox Code Playgroud)

如果将它们放在for循环中,这些线将绘制插值曲线,并在每次迭代时将每个方法的数据传递给它.请注意,这不会绘制非插值的精确调用曲线.

python numpy matplotlib scikit-learn precision-recall

6
推荐指数
2
解决办法
6589
查看次数

无法在 Mac OS X Yosemite 上安装 openfst python 库

上周我一直在尝试安装 openfst python 库,但是我被卡住了。我已经阅读了有关堆栈溢出和其他网站的所有类似问题,但没有一个说明有效。我安装了最新的 Xcode,使用

brew install openfst
Run Code Online (Sandbox Code Playgroud)

我也安装了 openfst,但是当我想通过编写安装 python 库时:

pip install openfst
Run Code Online (Sandbox Code Playgroud)

在终端,我得到:

Collecting openfst
  Using cached openfst-1.5.0.tar.gz
Building wheels for collected packages: openfst
  Running setup.py bdist_wheel for openfst
  Complete output from command /Users/ali/anaconda/bin/python -c "import setuptools;__file__='/private/var/folders/36/0m4j84pd49l55mvcqmbqt3z00000gn/T/pip-build-Jqe8Nu/openfst/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /var/folders/36/0m4j84pd49l55mvcqmbqt3z00000gn/T/tmpFNyllkpip-wheel-:
  running bdist_wheel
  running build
  running build_ext
  building 'fst' extension
  creating build
  creating build/temp.macosx-10.5-x86_64-2.7
  gcc -fno-strict-aliasing -I/Users/ali/anaconda/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Users/ali/anaconda/include/python2.7 -c fst.cc -o build/temp.macosx-10.5-x86_64-2.7/fst.o -std=c++11 -Wno-unneeded-internal-declaration -Wno-unused-function
  In file …
Run Code Online (Sandbox Code Playgroud)

python macos osx-yosemite openfst

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

如何在Twisted中使用dataReceived?

我已经使用Twisted实现了一个服务器程序.我正在使用basic.lineReceiver该方法dataReceived从多个客户端接收数据.此外,我protocol.ServerFactory用于跟踪连接的客户端.服务器向每个连接的客户端发送一些命令.根据服务器从每个客户端获取的响应,它(服务器)应该执行一些任务.因此,我想到的最佳解决方案是为收到的消息创建一个缓冲区作为python列表,每次服务器端的函数想知道客户端的响应时,它们访问缓冲区列表的最后一个元素(该客户).事实证明这种方法不可靠.第一个问题是,由于使用了TCP流,有时消息合并(我可以使用分隔符).其次,收到的消息有时不符合它们的顺序.第三,网络通信似乎太慢,因为当服务器最初尝试访问缓冲列表的最后一个元素时,列表为空(这表明缓冲区上的最后一条消息可能不是对上次发送的响应)命令).你能否告诉我dataReceived在上述问题中使用或等效的最佳选择是什么?先感谢您.

编辑1:答案 - 虽然我接受了@ Jean-Paul Calderone的回答,因为我当然从中学到了,我想补充一点,在我自己对Twisted文档的研究中,我了解到为了避免服务器通信延迟,应该return在dataReceived()或lineReceived()函数的末尾使用,这解决了我的问题的一部分.其余的,在答案中解释.

python twisted

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