我目前使用mechanize来读取gzip压缩的网页,如下所示:
br = mechanize.Browser()
br.set_handle_gzip(True)
response = br.open(url)
data = response.read()
Run Code Online (Sandbox Code Playgroud)
我想知道如何将urllib2提取的gzip压缩数据解压缩为HTML文本?
req = urllib2.Request(url)
opener = urllib2.build_opener()
response = opener.open(req)
data = response.read()
if response.info()['content-encoding'] == 'gzip':
HOW TO DECOMPRESS DATA TO HTML
Run Code Online (Sandbox Code Playgroud) 假设图库中有10,000个JPEG,PNG图像,如何找到具有相似调色板的所有图像到选定图像,并按降序相似度排序?
您可能已经听说过,有一个在线字体识别服务呼叫WhatTheFont
我对该工具背后的技术感到好奇。我认为基本上可以将其分为两个部分:
从各种格式的字体文件生成图像,有关字体文件扩展名的列表,请参阅http://www.fileinfo.com/filetypes/font。
比较提交的图像和所有生成的图像
感谢您分享一些建议或python代码以实现上述两个步骤。
我使用以下两种方法为.ttf字体文件生成文本预览图像
PIL方法:
def make_preview(text, fontfile, imagefile, fontsize=30):
try:
font = ImageFont.truetype(fontfile, fontsize)
text_width, text_height = font.getsize(text)
img = Image.new('RGBA', (text_width, text_height))
draw = ImageDraw.Draw(img)
draw.text((0, 0), text, font=font, fill=(0, 0, 0))
return True
except:
return False
Run Code Online (Sandbox Code Playgroud)
ImageMagick方法:
def make_preview(text, fontfile, imagefile, fontsize=30):
p = subprocess.Popen(['convert', '-font', fontfile, '-background',
'transparent', '-gravity', 'center', '-pointsize', str(fontsize),
'-trim', '+repage', 'label:%s' % text, image_file])
return p==0
Run Code Online (Sandbox Code Playgroud)
这两种方法大部分时间都会创建正确的预览图像,但在极少数情况下(<2%),font.getsize(文本)无法获得正确的文本大小,导致文本溢出提供画布.ImageMagick有同样的问题.
示例字体和预览:
HANFORD.TTF http://download.appfile.com/HANFORD.png
NEWTOW.TTF http://download.appfile.com/NEWTOW.png
MILF.TTF http://download.appfile.com/MILF.png
SWANSE.TTF http://download.appfile.com/SWANSE.png
我查看了ImageMagick的文档并找到了这个问题的解释 http://www.imagemagick.org/Usage/text/#overflow.
是否有可能检测到这样的文本溢出并绘制文本以符合我们预期的画布?
如何在python中从HTTP流媒体服务器读取二进制流.我做了一个搜索,有人说urllib2可以完成这项工作,但有阻塞问题.有人建议使用Twisted框架.
我的问题是:
如果它只是一个流媒体客户端读取后台数据,我可以忽略urllib2引起的阻塞问题吗?
如果urllib2无法赶上流媒体服务器会发生什么?数据会丢失吗?
如果流媒体服务器在检索数据之前需要通过GET或POST一些参数的用户身份验证,可以通过urllib2完成吗?
我在哪里可以找到urllib2和Twisted的一些流客户端示例?
谢谢.
插口
我在会话->启动程序中添加了以下命令,但是没有用。我正在使用Ubuntu。
sudo -u www-data python manage.py 192.168.1.2:8001
Run Code Online (Sandbox Code Playgroud)
192.168.1.2是ath0上的IP地址。在执行此命令的阶段,它仍然不能用于绑定吗?
我目前正在做的是添加另一个cronjob以重新启动开发服务器(如果它每隔5分钟未运行一次)?是在启动时运行它的更好方法吗?
如何使用以下命令运行subprocess.Popen?
mysqldump database_name table_name | bzip2 > filename
Run Code Online (Sandbox Code Playgroud)
我知道os.system()可以做这个工作,但我不想等待转储完成主程序.
我使用python的zipfile模块来提取.zip存档(例如,让我们在http://img.dafont.com/dl/?f=akvaleir上获取此文件.)
f = zipfile.ZipFile('akvaleir.zip', 'r')
for fileinfo in f.infolist():
print fileinfo.filename
f.extract(fileinfo, '.')
Run Code Online (Sandbox Code Playgroud)
它的输出:
Akval?ir_Normal_v2007.ttf
Akval?ir, La police - The Font - Fr - En.pdf
Run Code Online (Sandbox Code Playgroud)
提取后两个文件都无法访问,因为文件名中包含无效的编码字符.问题是zipfile模块没有指定输出文件名的选项.
但是,"解压缩akvaleir.zip"很好地逃避了文件名:
root@host:~# unzip akvaleir.zip
Archive: akvaleir.zip
inflating: Akval?ir_Normal_v2007.ttf
inflating: Akval?ir, La police - The Font - Fr - En.pdf
Run Code Online (Sandbox Code Playgroud)
我尝试在我的python程序中捕获"unzip -l akvaleir.zip"的输出,这两个文件名是:
Akval\xd0\x92ir_Normal_v2007.ttf
Akval\xd0\x92ir, La police - The Font - Fr - En.pdf
Run Code Online (Sandbox Code Playgroud)
如何在不捕获"unzip -l akvaleir.zip"输出的情况下获取正确的文件名,如unzip命令?
如何按"remaining_pcs"或"discount_ratio"的值对以下字典进行排序?
promotion_items = {
'one': {'remaining_pcs': 100, 'discount_ratio': 10},
'two': {'remaining_pcs': 200, 'discount_ratio': 20},
}
Run Code Online (Sandbox Code Playgroud)
编辑
我的意思是获取上面字典的排序列表,而不是排序字典本身.
如果您以前使用过true.com,那么您可能会知道,对于所寻找的关键字,只要屏幕左侧有多个搜索优化选项,它就会返回传统的搜索结果。
例如,搜索关键字“ designer”,优化选项为:
Salary Estimate
$40,000+ (45982)
$60,000+ (29795)
$80,000+ (15966)
$100,000+ (6896)
$120,000+ (2828)
Title
Floral Design Specialist (945)
Hair Stylist (817)
GRAPHIC DESIGNER (630)
Hourly Associates/Co-managers (589)
Web designer (584)
more »
Company
Kelly Services (1862)
Unlisted Company (1133)
CyberCoders Engineering (1058)
Michaels Arts & Crafts (947)
ULTA (818)
Elance (767)
Location
New York, NY (2960)
San Francisco, CA (1633)
Chicago, IL (1184)
Houston, TX (1057)
Seattle, WA (1025)
more »
Job Type
Full-time (45687)
Part-time (2196)
Contract …Run Code Online (Sandbox Code Playgroud)