我libtorrent在python中使用模块下载torrent.我可以从私人跟踪器下载torrent,但不能从公共跟踪器下载.我尝试使用各种种子,我可以使用"传输"下载.我检查了4个不同的连接,都是一样的.
def downloadTorrent(torrent):
"""
Download torrent using libtorrent library.
Torrent will be stored at the current directory.
"""
ses = lt.session()
ses.listen_on(6881, 6891)
info = lt.torrent_info(torrent)
h = ses.add_torrent({'ti': info, 'save_path': './'})
ses.start_dht()
print 'starting', h.name()
while (not h.is_seed()):
s = h.status()
state_str = ['queued', 'checking', 'downloading metadata', \
'downloading', 'finished', 'seeding', 'allocating', 'checking fastresume']
print '\r%.2f%% complete (down: %.1f kb/s up: %.1f kB/s peers: %d) %s' % \
(s.progress * 100, s.download_rate / 1000, s.upload_rate / 1000, …Run Code Online (Sandbox Code Playgroud) 我正在尝试在python中为类编写单元测试.该类在init上打开一个tcp套接字.我试图嘲笑这个,以便我可以断言用正确的值调用连接但显然在单元测试中实际上不会发生.我已经厌倦了MagicMock,补丁等,但我还没有找到解决方案.
到目前为止我的班级看起来像这样
import socket
class MyClass(object):
def __init__(self):
self.tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.tcp_socket.connect('0.0.0.0', '6767')
Run Code Online (Sandbox Code Playgroud) 我正在写一个C程序来计算两个矩阵的乘积.问题我注意到for循环的顺序很重要.例如:
对于N = 500
for (int i = 0; i < N; ++i) {
for (int j = 0; j < N; ++j) {
for (int k = 0 ; k < N; ++k) {
C[i*N+j]+=A[i*N+k] * B[k*N+j];
}
}
}
Run Code Online (Sandbox Code Playgroud)
执行时间(秒): 1.1531820000
for (int j = 0; j < N; ++j) {
for (int k = 0 ; k < N; ++k) {
for (int i = 0; i < N; ++i) {
C[i*N+j]+=A[i*N+k] * B[k*N+j]; …Run Code Online (Sandbox Code Playgroud) 我需要找一个密码密钥.密钥长度为10个字符,密钥中字母的顺序为3,7,2,1,4,5,6,10,8,9.我也知道密钥的md5.
所以我写了
mystring = "abcdefghijklmnopqrstuvwxyz"
for letter3 in mystring:
for letter7 in mystring[mystring.index(letter3):]:
for letter2 in mystring[:mystring.index(letter7)]:
for letter1 in mystring[:mystring.index(letter2)]:
for letter4 in mystring[mystring.index(letter1):]:
for letter5 in mystring[mystring.index(letter4):]:
for letter6 in mystring[mystring.index(letter4):]:
for letter10 in mystring[mystring.index(leter6):]:
for letter8 in mystring[:mystring.index(letter10)]:
for letter9 in mystring[mystring.index(letter8):]:
strr = "".join([letter1,letter2,letter3,letter4,letter5,letter6,letter7,letter8,letter9,letter10])
if hashlib.md5(strr).hexdigest() == md5:
print "key = " ,strr
break
Run Code Online (Sandbox Code Playgroud)
字符顺序:
|letter1|letter2|letter3|letter4|letter5|letter6|letter7|letter8|letter9|letter10|
Run Code Online (Sandbox Code Playgroud)
|letter3|letter7|letter2|letter1|letter4|letter5|letter6|letter10|letter8|letter9|
Run Code Online (Sandbox Code Playgroud)
问题是时间(在外部循环中进行一次迭代需要大约6个小时).有什么建议来优化for循环的范围?