小编Myk*_*hko的帖子

如何从python中编译的regexp模式获取模式字符串

我有一些像这样的代码:

>>> import re
>>> p = re.compile('my pattern')
>>> print p
_sre.SRE_Pattern object at 0x02274380
Run Code Online (Sandbox Code Playgroud)

是否可以"my pattern"p变量中获取字符串?

python regex

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

使用python MySQLdb执行*.sql文件

如何使用MySQLdb python驱动程序执行存储在*.sql文件中的sql脚本.我在努力


cursor.execute(file(PATH_TO_FILE).read())

但这不起作用,因为cursor.execute一次只能运行一个sql命令.我的sql脚本包含几个sql语句.我也在努力


cursor.execute('source %s'%PATH_TO_FILE)
Run Code Online (Sandbox Code Playgroud)

但也没有成功.

python mysql

22
推荐指数
8
解决办法
4万
查看次数

python中的条件覆盖率

是否有任何工具/库可以计算python代码的"条件/决策覆盖率"的百分比.我发现只有coverage.py但它只计算"语句覆盖率"的百分比.

python unit-testing code-coverage

19
推荐指数
1
解决办法
3519
查看次数

在Python中区分两个大文件

我有两个大文本文件,每个文件大约2GB.我需要类似的东西diff f1.txt f2.txt.有没有办法在python中快速完成这项任务?标准difflib太慢了.我假设有更快的方法,因为difflib在Python中完全实现.

python diff

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

从服务器读取一些偏移量的文件

如何从服务器读取文件以一些偏移量开始(与wget -c类似的行为)?我必须向服务器发送哪些标头?服务器支持哪些期货?

python http

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

为什么Python的枚举速度如此之慢?

为什么"枚举"比"xrange + lst [i]"慢?


>>> from timeit import Timer
>>> lst = [1,2,3,0,1,2]*1000
>>> setup = 'from __main__ import lst'
>>> s1 = """
for i in range(len(lst)):
    elem = lst[i]
"""
>>> s2 = """
for i in xrange(len(lst)):
    elem = lst[i]
"""
>>> s3 = """
for i, v in enumerate(lst):
    elem = v
"""
>>> t1 = Timer(s1, setup); t2 = Timer(s2, setup); t3 = Timer(s3, setup)
>>> t1.timeit(3000), t2.timeit(3000), t3.timeit(3000)
(1.9263118636586494, 1.6119261665937992, 1.9606022553145719)
>>> t1.timeit(3000), t2.timeit(3000), t3.timeit(3000)
(1.93520258859715, 1.6145745478824836, 1.9529405971988041)

编辑:我记得为什么

for i, v in …
Run Code Online (Sandbox Code Playgroud)

python

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

使用FIFO运行不带stdin/stdout的pdb

我正在用python开发FUSE文件系统.问题是,安装文件系统后,我从我的保险丝脚本标准输入/输出/标准错误的访问权限.我没有看到任何东西,甚至是追溯.我试图像这样启动pdb:


import pdb
pdb.Pdb(None, open('pdb.in', 'r'), open('pdb.out', 'w')).set_trace()

一切正常,但非常不方便.我想将pdb.in和pdb.out作为fifo文件,但不知道如何正确连接它.理想情况下,我想在一个终端中键入命令并查看输出,但即使有两个终端也会很高兴(一个放置命令,另一个看输出).问题:

1)没有stdin/stdout运行pdb更好/其他方式吗?

2)如何将stdin重定向到pdb.in fifo(我输入的所有内容必须转到pdb.in)?我怎样才能将pdb.out重定向到stdout(我有"cat pdb.out"的奇怪错误,但也许我不明白的东西)

python bash pdb

5
推荐指数
2
解决办法
1827
查看次数

Python Tornado中的异常处理

我试图以AsyncClient.fetch这种方式处理异常:


from tornado.httpclient import AsyncHTTPClient
from tornado.httpclient import HTTPRequest
from tornado.stack_context import ExceptionStackContext
from tornado import ioloop

def handle_exc(*args):
    print('Exception occured')
    return True

def handle_request(response):
    print('Handle request')

http_client = AsyncHTTPClient()

with ExceptionStackContext(handle_exc):
    http_client.fetch('http://some123site.com', handle_request)

ioloop.IOLoop.instance().start()

Run Code Online (Sandbox Code Playgroud)

并看到下一个输出:


WARNING:root:uncaught exception
Traceback (most recent call last):
  File "/home/crchemist/python-3.2/lib/python3.2/site-packages/tornado-2.0-py3.2.egg/tornado/simple_httpclient.py", line 259, in cleanup
    yield
  File "/home/crchemist/python-3.2/lib/python3.2/site-packages/tornado-2.0-py3.2.egg/tornado/simple_httpclient.py", line 162, in __init__
    0, 0)
socket.gaierror: [Errno -5] No address associated with hostname
Handle request

Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

python exception-handling tornado

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

在单元测试中使用wsgiref.simple_server

我有一些像这样的功能:


URL = 'http://localhost:8080'
def func():
    response = urlopen(URL)
    return process(response)

我想用unittest测试它.

我做了这样的事情:


from wsgiref.simple_server import make_server
def app_200_hello(environ,start_response):
    stdout = StringIO('Hello world')
    start_response("200 OK", [('Content-Type','text/plain')])
    return [stdout.getvalue()]

s = make_server('localhost', 8080, app_200_hello)

class TestFunc(unittest.TestCase):
    def setUp(self):
        s.handle_request()

    def test1(self):
        r = func()
        assert r, something

if __name__ == '__main__':
    unittest.main()
Run Code Online (Sandbox Code Playgroud)

在setUp()我的测试停止,因为s.handle_request()等待请求.我怎么能绕过那个?在另一个线程中运行s.handle_request()?或者还有另一种解决方案?

编辑:我想测试"func"函数,而不是"app_200_hello"

python unit-testing wsgiref

4
推荐指数
2
解决办法
2740
查看次数

将单词分类为"好"和"坏"

我有一个域名列表,并希望确定域名的名称,看起来像是色情网站.有什么更好的方法呢?色情域名列表如http://dumpz.org/56957/.此域名可用于教授系统色域应该如何显示.另外我还有其他列表 - http://dumpz.org/56960/ - 此列表的许多域名也是色情片,我想通过名称来确定它们.

python algorithm scala classification text-mining

4
推荐指数
2
解决办法
1346
查看次数

python范围出现在其他范围内

我该怎么做这样的事情:

>>> xrange(4, 10) in xrange(3, 20)
TRUE
Run Code Online (Sandbox Code Playgroud)

python

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