我有一组字符串,例如
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.
好吧,所以我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) 好吧,出于多种原因,我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中运行的任何想法?
我无法弄清楚以下代码有什么问题,语法是正确的(使用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) 我的服务器软件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) 没有丝毫想到为什么会发生这种情况......
我相应地设置了一张桌子:
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 ...甚至不确定从哪里开始调试这个..我不是没有磁盘空间而且错误本身有点谨慎..
这可能只是另一个未解决的线程,但无论如何我会填写一些信息.
我甚至连一秒钟都无法将我的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) 出于某种原因,这不起作用:
$.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 ..
有关我猜的信息,我正在运行:
和取消注释(in /etc/php.ini):
也:
# 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) 我正在尝试为学习目的做一个小型安全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) 以下代码:
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 ×8
reload ×2
sockets ×2
ssl ×2
ajax ×1
api ×1
client ×1
facebook ×1
https ×1
integer ×1
ip ×1
jquery ×1
module ×1
namespaces ×1
php ×1
postgresql ×1
prefix ×1
pyfacebook ×1
pyodbc ×1
pyopenssl ×1
python-3.3 ×1
python-3.4 ×1
python-3.x ×1
signature ×1
string ×1
verify ×1
windows ×1