标签: stringio

使用大小小于10kb的开放URI和回形针存储图像

我想从旧网站导入一些图标.这些图标的大小小于10kb.因此,当我尝试将图标导入其返回的stringio.txt文件时.

require "open-uri"
class Category < ActiveRecord::Base
   has_attached_file :icon,  :path => ":rails_root/public/:attachment/:id/:style/:basename.:extension"
  def icon_from_url(url)
    self.icon = open(url)
   end    
end
Run Code Online (Sandbox Code Playgroud)

在rake任务中.

   category = Category.new
   category.icon_from_url "https://xyz.com/images/dog.png"
   category.save
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails image paperclip stringio

5
推荐指数
2
解决办法
1万
查看次数

来自cStringIO对象的Numpy数组并避免复制

这样可以更好地理解事物.这不是我需要解决的实际问题.一个cstringIO对象应该模拟一个字符串,文件以及一行上的迭代器.它是否也模拟缓冲区?在任何情况下,理想情况下,应该能够构建如下的numpy数组

import numpy as np
import cstringIO

c = cStringIO.StringIO('\x01\x00\x00\x00\x01\x00\x00\x00')

#Trying the iterartor abstraction
b = np.fromiter(c,int)
# The above fails with: ValueError: setting an array element with a sequence.

#Trying the file abstraction
b = np.fromfile(c,int)
# The above fails with: IOError: first argument must be an open file

#Trying the sequence abstraction
b = np.array(c, int)
# The above fails with: TypeError: long() argument must be a string or a number 

#Trying the string abstraction
b …
Run Code Online (Sandbox Code Playgroud)

python numpy stringio

5
推荐指数
1
解决办法
1587
查看次数

lxml.etree.iterparse关闭输入文件处理程序?

filterous被使用 iterparse来解析简单的XML StringIO对象中一个单元测试.但是,在尝试访问该StringIO对象之后,Python将以" ValueError: I/O operation on closed file"消息退出.根据iterparse文档,"从lxml 2.3开始,.close()方法也将在错误情况下被调用,"但我没有收到任何错误消息或Exception来自iterparse.我的IO-foo显然没有达到速度,所以有人有建议吗?

命令和(希望)相关代码:

$ python2.6 setup.py test
Run Code Online (Sandbox Code Playgroud)

setup.py:

from setuptools import setup
from filterous import filterous as package

setup(
    ...
    test_suite = 'tests.tests',
Run Code Online (Sandbox Code Playgroud)

测试/ tests.py:

from cStringIO import StringIO
import unittest

from filterous import filterous

XML = '''<posts tag="" total="3" ...'''

class TestSearch(unittest.TestCase):
    def setUp(self):
        self.xml = StringIO(XML)
        self.result = StringIO()
    ...
    def test_empty_tag_not(self):
        """Empty …
Run Code Online (Sandbox Code Playgroud)

python stringio iterparse

5
推荐指数
1
解决办法
580
查看次数

在 ReportLab 生成的 PDF 中包含 base64 编码的图像

我正在尝试解码 base64 编码的图像并将其放入我使用 ReportLab 生成的 PDF 中。我目前是这样做的(image_data是 base64 编码的图像,story已经是 ReportLab 的故事):

# There is some "story" I append every element
img_height = 1.5 * inch  # max image height
img_file = tempfile.NamedTemporaryFile(mode='wb', suffix='.png')
img_file.seek(0)
img_file.write(image_data.decode('base64'))
img_file.seek(0)
img_size = ImageReader(img_file.name).getSize()
img_ratio = img_size[0] / float(img_size[1])
img = Image(img_file.name,
    width=img_ratio * img_height,
    height=img_height,
)
story.append(img)
Run Code Online (Sandbox Code Playgroud)

它有效(尽管对我来说仍然很难看)。我想摆脱临时文件(文件类对象不应该起作用吗?)。

为了摆脱临时文件,我尝试使用StringIO模块,创建类文件对象并传递它而不是文件名:

# There is some "story" I append every element
img_height = 1.5 * inch  # max image height
img_file …
Run Code Online (Sandbox Code Playgroud)

python django reportlab temporary-files stringio

5
推荐指数
1
解决办法
2984
查看次数

如何在Python中使用StringIO放置新行?

import StringIO
output = StringIO.StringIO()   
output.write('this is the first line\n the new line should come here')
a = output.getvalue()
output.close()
print a 
Run Code Online (Sandbox Code Playgroud)

但是新行字符\n不会被打印为新行。

我如何获得换行符?

python stringio

5
推荐指数
0
解决办法
2073
查看次数

PDF不包含带有pdf-reader的EOF标记(PDF :: Reader :: MalformedPDFError)

我正在使用'pdf-reader'gem来阅读pdf文档的原始内容,以便我可以将它们发布(http-post)到API.要确认API实现可以从原始内容创建有效的pdf文档,我写了一个小小的要点来验证我的代码以阅读pdf内容.

出于某种原因,我总是得到'PDF不包含EOF标记(PDF :: Reader :: MalformedPDFError)'.

谁能指出我哪里出错了?

ruby pdf gem pdf-reader stringio

5
推荐指数
0
解决办法
950
查看次数

如何清除`StringIO`实例?

我该如何清除StringIO实例?在我写入并读取字符串io后,我想清除它.

require "stringio"
io = StringIO.new
io.write("foo")
io.string #=> "foo"
# ... After doing something ...
io.string #=> Expecting ""
Run Code Online (Sandbox Code Playgroud)

我试过flushrewind,但我仍然得到同样的内容.

ruby stringio

5
推荐指数
1
解决办法
2372
查看次数

如何在python 3中通过FTP发送StringIO?

我想通过FTP上传文本字符串作为文件。

import ftplib
from io import StringIO

file = StringIO()
file.write("aaa")
file.seek(0)


with ftplib.FTP() as ftp:
    ftp.connect("192.168.1.104", 2121)
    ftp.login("ftp", "ftp123")
    ftp.storbinary("STOR 123.txt", file)
Run Code Online (Sandbox Code Playgroud)

此代码返回错误:

TypeError: 'str' does not support the buffer interface
Run Code Online (Sandbox Code Playgroud)

python ftp bytesio stringio python-3.x

5
推荐指数
1
解决办法
1689
查看次数

Python - 在内存中生成csv文件,然后将其数据编码为base64?

我需要在内存中生成像数据一样的csv文件,然后将其编码为base64,这样我就可以保存它.所以基本上我不想为此在硬盘中创建文件.现在我通过创建csv文件然后编码其数据,保存它然后只是删除csv文件(因为它不再需要)来解决这个问题.但有没有办法跳过文件创建,但以同样的方式保存数据?我的意思是数据将用于使用base64再次打开csv文件.

import base64
import csv
from StringIO import StringIO
import os

def test_binary(self):
    mylist = [['a', 'b'], ['c', 'd']]
    with open("test.csv", "wb") as f:
        writer = csv.writer(f)
        writer.writerows(mylist)   

    myfile = open('test.csv', 'r')
    stream = StringIO(myfile.read())

    encoded = base64.b64encode(stream.getvalue())

    self.test = encoded
    myfile.close()
    os.remove('test.csv')        
Run Code Online (Sandbox Code Playgroud)

python memory csv base64 stringio

5
推荐指数
2
解决办法
8741
查看次数

我们应该使用 pandas.compat.StringIO 还是 Python 2/3 StringIO?

StringIO 是我们在从文本中读取Pandas数据帧时使用的类似文件的字符串缓冲区对象,例如“如何从字符串创建 Pandas数据帧?”

我们应该将这两个导入中的哪一个用于 StringIO(在熊猫中)?这是一个长期存在的问题,四年来从未得到解决。

  1. StringIO.StringIO(Python 2)/ io.StringIO(Python 3)
    • 优点:对于面向未来的代码更稳定,但迫使我们进行版本分叉,例如参见 EmilH 底部的代码。
  2. pandas.compat.StringIO

用于从标准(来自 EmilH)导入的版本 2/3 分叉代码:

import sys
if sys.version_info[0] < 3: 
    from StringIO import StringIO
else:
    from io import StringIO …
Run Code Online (Sandbox Code Playgroud)

import backwards-compatibility stringio python-2to3 pandas

5
推荐指数
2
解决办法
2222
查看次数