我写了一段代码,当我运行它时,它会顺利进行 “czz”,我是初学者,我不知道是什么问题。如果有人能告诉我我做错了什么。基本上,此代码背后的想法是尝试使用“.ro”
查找所有可用的3个字母的域import urllib2
import urllib
import string
from urllib2 import Request, urlopen, URLError, HTTPError
from string import ascii_lowercase
f = open('3-letters.txt', 'w')
for x in ascii_lowercase:
for y in ascii_lowercase:
for z in ascii_lowercase:
req = Request("http://"+x+y+z+".ro")
try:
response = urlopen(req)
except HTTPError as e:
f.write("http://"+x+y+z+".ro\n")
except URLError as e:
f.write("http://"+x+y+z+".ro\n")
else:
print "bad "+x+y+z
f.close();
答案 0 :(得分:4)
一个问题是,在您不再需要它们之后,您不会关闭它们,您可以使用response.close()
执行此操作。在finally
块中执行此操作以确保始终执行。
try:
# do stuff
except:
# do stuff
finally:
response.close()
此外,这是生成所有三个字母字符串比嵌套for
循环更好的方法:
>>> from string import ascii_lowercase
>>> from itertools import product
>>> three_letters = (''.join(x) for x in product(ascii_lowercase, repeat=3))
>>> for x in three_letters:
... print(x)
'aaa'
'aab'
'aac'
'aad'
'aae'
...
答案 1 :(得分:2)
你必须关闭连接。
void cameraCaptureTask_Completed(object sender, PhotoResult e)
{
if (e.TaskResult == TaskResult.OK)
{
MessageBox.Show(e.ChosenPhoto.Length.ToString());
//Code to display the photo on the page in an image control named myImage.
System.Windows.Media.Imaging.BitmapImage bmp = new System.Windows.Media.Imaging.BitmapImage();
bmp.SetSource(e.ChosenPhoto);
myImage.Source = bmp;
}
}
我希望你不要尝试垃圾邮件或其他东西。
答案 2 :(得分:2)
您可以尝试向timeout
添加urlopen
参数:
response = urlopen(req, timeout=2)
例如,cze.ro
似乎需要永远。