小编Tor*_*xed的帖子

从一组(相似)字符串中确定前缀

我有一组字符串,例如

my_prefix_what_ever
my_prefix_what_so_ever
my_prefix_doesnt_matter
Run Code Online (Sandbox Code Playgroud)

我只是想找到这些字符串中最长的公共部分,这里是前缀.在上面的结果应该是

my_prefix_
Run Code Online (Sandbox Code Playgroud)

字符串

my_prefix_what_ever
my_prefix_what_so_ever
my_doesnt_matter
Run Code Online (Sandbox Code Playgroud)

应该导致前缀

my_
Run Code Online (Sandbox Code Playgroud)

在Python中有一种相对无痛的方法来确定前缀(无需手动迭代每个字符)吗?

PS:我使用的是Python 2.6.3.

python string prefix

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

Python - Facebook API - 需要一个有效的例子

好吧,所以我google了一下,我在stackoverflow上找到了线程,我已经检查了官方的Facebook wiki和..什么不是..

我现在希望你们其中一个人坐在用于Python的Facebook API示例代码上.这就是我到目前为止所得到的只是通过PyFacebook的"无效签名",这似乎是一个死的项目:

from facebook import Facebook

api_key = '123456789______'
secret  = '<proper secret key>'
OTK = 'XXXXX' # <-- You get this from: https://www.facebook.com/code_gen.php?v=1.0&api_key=123456789______
long_term_key = None

fb = Facebook(api_key, secret)

def generate_session_from_onetime_code(fb, code):
    fb.auth_token = code
    return fb.auth.getSession()
if not long_term_key:
    long_term_key = generate_session_from_onetime_code(fb, OTK)['session_key']
    print 'Replace None with this in the .py file for long_term_key:'
    print long_term_key

fb.session_key = long_term_key
fb.uid = 000000001  # <-- Your user-id
fb.signature = api_key # <-- This doesn't work at …
Run Code Online (Sandbox Code Playgroud)

python api facebook signature pyfacebook

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

Python3 - 无法在__import__对象上调用reload()?

好吧,出于多种原因,我s = __import__('parse')在Python2中使用的时间最长,现在我需要为某些项目转换到Python3(主要是由于SSL).

但就reload()我发现而言,Python3中并没有相应的内容.只有一个选择:

import parse
parse.reload() #works
Run Code Online (Sandbox Code Playgroud)

但我真的,真的需要这个工作:

parse = __import__('parse')
parse.reload()
Run Code Online (Sandbox Code Playgroud)

要么

reload(parse)
Run Code Online (Sandbox Code Playgroud)

关于如何让它在Python3中运行的任何想法?

python module reload python-3.x python-3.3

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

MSSQL2008 - Pyodbc - 以前的SQL不是查询

我无法弄清楚以下代码有什么问题,语法是正确的(使用SQL Management Studio检查),我有访问权限因为我应该也可以这样做..但是出于某种原因,我试图创建一个表通过PyODBC然后它停止工作.

import pyodbc

def SQL(QUERY, target = '...', DB = '...'):
    cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=' + target + DB+';UID=user;PWD=pass')
    cursor = cnxn.cursor()
    cursor.execute(QUERY)
    cpn = []

    for row in cursor:
        cpn.append(row)
    return cpn

print SQL("CREATE TABLE dbo.Approvals (ID SMALLINT NOT NULL IDENTITY PRIMARY KEY, HostName char(120));")
Run Code Online (Sandbox Code Playgroud)

它失败了:

Traceback (most recent call last):
  File "test_sql.py", line 25, in <module>
    print SQL("CREATE TABLE dbo.Approvals (ID SMALLINT NOT NULL IDENTITY PRIMARY KEY, HostName char(120));")
  File "test_sql.py", line 20, in SQL
    for …
Run Code Online (Sandbox Code Playgroud)

python windows pyodbc sql-server-2008

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

socket.error:[errno 99]无法在python中分配请求的地址和命名空间

我的服务器软件errno99: cannot assign requested address在使用除127.0.0.1绑定之外的IP地址时说.

但如果IP地址是127.0.0.1有效的.它与命名空间有关吗?

我通过调用在另一个python程序中执行我的服务器和客户端代码execfile().我实际上正在编辑mininet源代码.我编辑了net.py,在里面我使用了execfile('server.py')execfile('client1.py')和execfile('client2.py').所以一旦" sudo mn --topo single,3"被调用以及3个主机的创建我的服务器和客户端代码将被执行.我已经给出了我的服务器和客户端代码.

#server code
import select 
import socket 
import sys 
backlog = 5 
size = 1024 
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
server.bind(("10.0.0.1",9999)) 
server.listen(backlog) 
input = [server] 
running = 1 
while running: 
    inputready,outputready,exceptready = select.select(input,[],[]) 
    for s in inputready: 
        if s == server: 
            client, address = server.accept() 
            input.append(client)
        else: 
            l = s.recv(1024)
            sys.stdout.write(l)
server.close()
Run Code Online (Sandbox Code Playgroud)


#client code
import socket
import select
import sys
import time
while(1) …
Run Code Online (Sandbox Code Playgroud)

python sockets ip namespaces

24
推荐指数
4
解决办法
18万
查看次数

postgresql - 整数超出范围

没有丝毫想到为什么会发生这种情况......

我相应地设置了一张桌子:

CREATE TABLE raw (
    id          SERIAL,
    regtime     float NOT NULL,
    time        float NOT NULL,
    source      varchar(15),
    sourceport  INTEGER,
    destination varchar(15),
    destport    INTEGER,
    blocked     boolean
); ... + index and grants
Run Code Online (Sandbox Code Playgroud)

我已成功使用此表一段时间了,突然之后,以下插入不再有效..

INSERT INTO raw(
    time, regtime, blocked, destport, sourceport, source, destination
) VALUES (
    1403184512.2283964, 1403184662.118, False, 2, 3, '192.168.0.1', '192.168.0.2'
);
Run Code Online (Sandbox Code Playgroud)

错误是: ERROR: integer out of range

我的意思是comon ...甚至不确定从哪里开始调试这个..我不是没有磁盘空间而且错误本身有点谨慎..

postgresql integer runtime-error

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

Python - SSL - 错误的版本号

这可能只是另一个未解决的线程,但无论如何我会填写一些信息.

我甚至连一秒钟都无法将我的SSL包装在一起.对我的wrap_socket()和do_handshake()做错了什么想法?

关键文件似乎100%完美,我在握手之前尝试过没有.recv()的AND.这只是根据我放置recv()的位置生成这些:

SSL3_GET_CLIENT_HELLO:版本号错误

SSL3_GET_RECORD:版本号错误

class Server():
    def __init__(self, listen = '', port = 8080, ssl = False):
        self.sock = socket.socket()
        self.sock.bind((listen, port))
        self.sock.listen(5)

    def accept(self):
        newsocket, fromaddr = self.sock.accept()
        newsocket.recv(32)
        newsocket.setblocking(0)
        sslsock = ssl.wrap_socket(newsocket,
                                    server_side=True,
                                    certfile="./kernel/sock/server.crt",
                                    keyfile="./kernel/sock/server.key",
                                    cert_reqs=ssl.CERT_NONE,
                                    ssl_version=ssl.PROTOCOL_TLSv1,
                                    do_handshake_on_connect=False,
                                    suppress_ragged_eofs=True)
        sslsock.do_handshake()
        return sslsock, fromaddr
Run Code Online (Sandbox Code Playgroud)

为了记录,如果它不明显或我错了,这是握手失败:)

我稍微修改了代码,尝试SSLv3并且还改变了包装的位置:

import socket, ssl, time, select

class Server():
    def __init__(self, listen = '', port = 443, ssl = False):
        self.sock = socket.socket()
        self.sock.bind((listen, port))
        self.sock.listen(5)

    def accept(self):
        self.sock = ssl.wrap_socket(self.sock,
                                    server_side=True,
                                    certfile="./kernel/sock/server.crt",
                                    keyfile="./kernel/sock/server.key", …
Run Code Online (Sandbox Code Playgroud)

python sockets ssl pyopenssl

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

jQuery - GET News.html 404(未找到)

出于某种原因,这不起作用:

$.ajax({
    url: "News.html",
    cache: false,
}).done(function(data) {
    $("#content").load(data);
});
Run Code Online (Sandbox Code Playgroud)

它给了我:

GET http://127.0.0.1/News.html 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)

但无论出于何种原因,手动打开该URL (复制粘贴网址)工作正常.我认为它首先与浏览器缓存有关,所以我添加cache: false了ajax函数的选项,但即便如此..唉......

它也不会在我的access.log文件中显示为请求的URL ..

有关我猜的信息,我正在运行:

  • lighttpd的
  • php作为fast-cgi通过localhost:port
  • 映射.html => .php
  • 运行OpenBSD 5.3

和取消注释(in /etc/php.ini):

  • cgi.fix_pathinfo = 1

也:

# ls *.html
News.html     index.html
Run Code Online (Sandbox Code Playgroud)

这是以下的请求标头News.html:

Request URL:http://127.0.0.1/News.html
Request Method:GET
Status Code:404 Not Found
Run Code Online (Sandbox Code Playgroud)

请求标题

Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Host:127.0.0.1
Referer:http://127.0.0.1/index.php
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36
X-Requested-With:XMLHttpRequest
Run Code Online (Sandbox Code Playgroud)

响应标题

Content-type:text/html …
Run Code Online (Sandbox Code Playgroud)

php ajax jquery

12
推荐指数
1
解决办法
2951
查看次数

Python客户端 - SSL lib - 证书验证失败

我正在尝试为学习目的做一个小型安全HTTPS客户端,看看SSL的所有机制现在如何在更高层次上工作,所以我试图通过ssl.wrap_socket将一个简单的套接字转换为ssl.

我可能倒退了整个概念但是,这就是我正在做的事情:

s.connect((host, port))
if port == 443:
    f = open('cacerts.txt', 'r')
    calist = f.read()
    f.close()
    ca = ssl.get_server_certificate((host, port), ssl_version=ssl.PROTOCOL_SSLv3|ssl.PROTOCOL_TLSv1)
    if not ca in calist:
        f = open('cacerts.txt', 'a')
        f.write(ca)
        f.close()
    s = ssl.wrap_socket(s, ssl_version=ssl.PROTOCOL_SSLv3|ssl.PROTOCOL_TLSv1, cert_reqs=ssl.CERT_REQUIRED, ca_certs="cacerts.txt")
    s.do_handshake()
Run Code Online (Sandbox Code Playgroud)

当我调用do_handshake()时,我得到了这个:

Traceback (most recent call last):
  File "SSL_test.py", line 84, in Requester
    s = ssl.wrap_socket(s, ssl_version=ssl.PROTOCOL_SSLv3|ssl.PROTOCOL_TLSv1, cert_reqs=ssl.CERT_REQUIRED, ca_certs="cacerts.txt")
  File "C:\Python26\lib\ssl.py", line 338, in wrap_socket
    suppress_ragged_eofs=suppress_ragged_eofs)
  File "C:\Python26\lib\ssl.py", line 120, in __init__
    self.do_handshake()
  File "C:\Python26\lib\ssl.py", line 279, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLError: [Errno …
Run Code Online (Sandbox Code Playgroud)

python ssl https client verify

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

imp.reload - NoneType对象没有属性'name'

以下代码:

def _IMPORT_(path)
    path = abspath(path)
    namespace = path[len(getcwd())+1:].replace('/', '_').strip('\\/;,. ')
    print(path)
    print(namespace)
    loader = importlib.machinery.SourceFileLoader(namespace, path+'.py')
    handle = loader.load_module(namespace)
    print(handle)
    importlib.reload(handle)
    return handle
Run Code Online (Sandbox Code Playgroud)

生产:

/home/torxed/git/test/unitest/unix
unitest_unix
<module 'unitest_unix' from '/home/torxed/git/test/unitest/unix.py'>

Traceback (most recent call last):
  File "network.py", line 17, in <module>
    handle = sock()
  File "network.py", line 9, in __init__
    sock = _IMPORT_('./unix')
  File "/home/torxed/git/test/unitest/helpers.py", line 13, in _IMPORT_
    imp.reload(handle)
  File "/usr/lib/python3.4/imp.py", line 315, in reload
    return importlib.reload(module)
  File "/usr/lib/python3.4/importlib/__init__.py", line 149, in reload
    methods.exec(module)
  File "<frozen importlib._bootstrap>", line …
Run Code Online (Sandbox Code Playgroud)

python reload python-import python-3.4

11
推荐指数
1
解决办法
2380
查看次数