我的代码只是抓取一个网页,然后将其转换为Unicode.
html = urllib.urlopen(link).read()
html.encode("utf8","ignore")
self.response.out.write(html)
Run Code Online (Sandbox Code Playgroud)
但我得到一个UnicodeDecodeError:
Traceback (most recent call last):
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/webapp/__init__.py", line 507, in __call__
handler.get(*groups)
File "/Users/greg/clounce/main.py", line 55, in get
html.encode("utf8","ignore")
UnicodeDecodeError: 'ascii' codec can't decode byte 0xa0 in position 2818: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
我认为这意味着HTML包含一些在某处错误形成的Unicode尝试.我可以删除导致问题的任何代码字节而不是出错吗?
Python版本2.7
我正在寻找有关如何使用PDFMiner和Python从PDF文件中提取文本的文档或示例.
看起来PDFMiner更新了他们的API,我发现的所有相关示例都包含过时的代码(类和方法已经改变).我发现的库使得从PDF文件中提取文本的任务更容易使用旧的PDFMiner语法,所以我不知道如何做到这一点.
事实上,我只是看源代码,看看能否解决它.
有没有办法使用opencv2和ipython笔记本进行绘图?
我是python图像分析的新手.我决定使用笔记本的工作流程来制作漂亮的记录,因为我正在处理它并且使用matplotlib/pylab绘制的东西很好.
我遇到的最初障碍是如何在笔记本中绘制内容.简单,只需使用魔法:
%matplotlib inline
Run Code Online (Sandbox Code Playgroud)
后来,我想用交互式绘图进行操作,但在专用窗口中绘图总是会冻结.好吧,我再次了解到你需要使用魔法.而不是只导入模块:
%pylab
Run Code Online (Sandbox Code Playgroud)
现在我已经开始使用opencv了.我现在回到同样的问题,我要么根据手头的任务绘制内联或使用专用的交互式窗口.是否有类似的魔法使用?还有另一种让事情发挥作用的方法吗?或者我卡住了,需要回到IDLE运行程序?
作为旁注:我知道opencv已正确安装.首先,因为我没有安装或导入cv2模块的错误.其次,因为我可以用cv2读取图像,然后用其他东西绘制它们.
我编写了一些Python代码,用于从Web获取zip文件并将其转换为字符串:
In [1]: zip_contents[0:5]
Out[1]: 'PK\x03\x04\x14'
Run Code Online (Sandbox Code Playgroud)
我看到有一个zipfile库,但是我在查找函数时遇到了麻烦,我只能传递一堆原始zip数据.它似乎想从文件中读取它.
我真的需要将其转储到临时文件中,还是有办法绕过它?
我有两个字符串数组:
In [51]: r['Z']
Out[51]:
array(['0', '0', '0', ..., '0', '0', '0'],
dtype='|S1')
In [52]: r['Y']
Out[52]:
array(['X0', 'X0', 'X0', ..., 'X0', 'X1', 'X1'],
dtype='|S2')
Run Code Online (Sandbox Code Playgroud)
S1和S2有什么区别?只是他们持有不同长度的条目吗?
如果我的数组有不同长度的字符串怎么办?
我在哪里可以找到所有可能的dtypes列表及其含义?
如何将内存zipfile写入文件?
# Create in memory zip and add files
zf = zipfile.ZipFile(StringIO.StringIO(), mode='w',compression=zipfile.ZIP_DEFLATED)
zf.writestr('file1.txt', "hi")
zf.writestr('file2.txt', "hi")
# Need to write it out
f = file("C:/path/my_zip.zip", "w")
f.write(zf) # what to do here? Also tried f.write(zf.read())
f.close()
zf.close()
Run Code Online (Sandbox Code Playgroud) 我想直接使用压缩的JPEG图像.我知道使用PIL/Pillow我可以在保存时压缩图像,然后回读压缩图像 - 例如
from PIL import Image
im1 = Image.open(IMAGE_FILE)
IMAGE_10 = os.path.join('./images/dog10.jpeg')
im1.save(IMAGE_10,"JPEG", quality=10)
im10 = Image.open(IMAGE_10)
Run Code Online (Sandbox Code Playgroud)
但是,我想要一种方法来做到这一点,而无需无关的写和读.是否有一些Python包带有一个函数,它将图像和质量数作为输入并返回具有给定质量的图像的jpeg版本?
给定django图像字段,如何创建PIL图像,反之亦然?
简单的问题,但很难谷歌:(
(我将使用django-imagekit的处理器来旋转已经存储为模型属性的图像.)
编辑
In [41]: m.image_1.__class__
Out[41]: django.db.models.fields.files.ImageFieldFile
In [42]: f = StringIO(m.image_1.read())
In [43]: Image.open(f)
---------------------------------------------------------------------------
IOError Traceback (most recent call last)
<ipython-input-43-39949b3b74b3> in <module>()
----> 1 Image.open(f)
/home/eugenekim/virtualenvs/zibann/local/lib/python2.7/site-packages/PIL/Image.pyc in open(fp, mode)
2023 pass
2024
-> 2025 raise IOError("cannot identify image file")
2026
2027 #
IOError: cannot identify image file
In [44]:
Run Code Online (Sandbox Code Playgroud) 一些方法可以做到这一点:
df.tailnrows参数来读取skiprows并读取所需的行数.可以用更简单的方式完成吗?如果不是,应该优先考虑这三者中的哪一个?为什么?
可能相关:
没有直接关系:
问题:需要将matplotlib的图形图像转换为base64图像
当前解决方案:将matplot图像保存在缓存文件夹中,并使用read()方法读取它,然后转换为base64
新问题:烦恼:需要一个解决方法,所以我不需要将图形保存为任何文件夹中的图像.我想在内存中使用图像.执行不必要的I/O是一种不好的做法.
def save_single_graphic_data(data, y_label="Loss", x_label="Epochs", save_as="data.png"):
total_epochs = len(data)
plt.figure()
plt.clf()
plt.plot(total_epochs, data)
ax = plt.gca()
ax.ticklabel_format(useOffset=False)
plt.ylabel(y_label)
plt.xlabel(x_label)
if save_as is not None:
plt.savefig(save_as)
plt.savefig("cache/cached1.png")
cached_img = open("cache/cached1.png")
cached_img_b64 = base64.b64encode(cached_img.read())
os.remove("cache/cached1.png")
return cached_img_b64
Run Code Online (Sandbox Code Playgroud)