标签: stringio

Sinatra、Twitter 和 StringIO

Twitter API允许你通过他们的媒体添加到您的鸣叫update_with_tweet方法。

我正在使用SinatraTwitter设置了所有配置。我能够成功地使用我的应用发布推文。

我的应用程序读取网页,从该页面提取照片,然后应该将它们单独发布到 Twitter。我成功地使用Nokogiri.

但是,我无法将这些照片转换为Twitter允许的媒体类型。因为我也在使用urigem,给出这个例子:photo_url = "placekitten.com/300/300",我可以调用media = open(photo_url),这会返回一个StringIO.

但是,当我尝试将新存储的媒体与我的帖子一起发布给Twitter我时,出现了The IO object for media must respond to to_io (Twitter::Error::UnacceptableIO).

我试图弄清楚如何正确格式化/调用图像,以便我可以成功地将其发布到 Twitter。

twitter sinatra stringio

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

Perl的StringWriter / StringIO

我正在尝试为写入套接字的某些通信代码编写一些单元测试。在测试期间,我想将我的通信库写入一个字符串,然后可以将字符串的内容与我希望写入的内容进行比较。

在Java中,我将使用类似a的名称,StringWriter以便我的通信代码可以写入标准Writer接口,最后,我可以只索要所有已写入的数据。

是否有与Perl等效的Python或StringIO?这样的东西已经内置了吗?

io perl stringio

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

在内存Zip文件Python错误

我正在尝试用Python制作内存中的zip文件并将其上传到Amazon S3.我已经阅读过关于此事的类似帖子,但无论我尝试什么,Windows和Linux(RHEL5)都无法打开它(它已经损坏).这是我正在运行的代码:

f_redirects = StringIO()
f_links = StringIO()
f_metadata = StringIO()

# Write to the "files"

zip_file = StringIO()
zip = zipfile.ZipFile(zip_file, 'a', zipfile.ZIP_DEFLATED, False)
zip.writestr('redirects.csv', f_redirects.getvalue())
zip.writestr('links.csv', f_bad_links.getvalue())
zip.writestr('metadata.csv', f_metadata.getvalue())

f_redirects.close()
f_links.close()
f_metadata.close()

k = Key(BUCKET)
k.key = '%s.zip' % base_name
k.set_metadata('Content-Type', 'application/zip')
k.set_contents_from_string(zip_file.getvalue())
zip.close()
zip_file.close()
Run Code Online (Sandbox Code Playgroud)

python zip amazon-s3 zipfile stringio

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

Django视图测试中使用StringIO的“关闭文件的I/O操作”

我继承了以下 Django 视图代码,由另一个 Web 服务用于提供可下载版本的输出数据:

def index(request):
    # ... (snip) ...
    data = base64.decodestring(request.POST['data'])
    filename = request.POST['filename']

    wrapper = FileWrapper(StringIO(data))

    response = HttpResponse(wrapper, content_type=guess_type(str(filename))[0])

    response['Content-Length'] = len(data)
    response['Content-Disposition'] = "attachment; filename=" + filename

    return response
Run Code Online (Sandbox Code Playgroud)

该函数本身(针对 Django 1.0 编写)在升级到 1.5 后仍然可以正常工作。不幸的是,涵盖此视图的测试现在失败了:

    def testDownload(self):
        self.client.login(username='test', password='test')

        real = 'abc' * 100
        data = base64.encodestring(real)
        response = self.client.post("/api/v1/download/", {'data': data, 'filename': 'out.jpg'})

        self.assertEqual(real, response.content)
        self.assertEqual(response['Content-Disposition'], 'attachment; filename=out.jpg')
Run Code Online (Sandbox Code Playgroud)

和错误:

Traceback (most recent call last):
  File "/home/fred/.secret_projects/final/gerbils/tests/amf.py", line 548, in testDownload
    self.assertEqual(real, response.content)
  File …
Run Code Online (Sandbox Code Playgroud)

python django wsgi stringio

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

python json转储可写性“不可写”

所以这是我的程序的第二个问题,但是一个完全不同的问题,感谢有帮助的人建议 JSON 作为做我想做的更好的方法......

反正...

JSON 取得了一些成功。该程序也更改了主题,我绝对不是要制作游戏,只是获得灵感来了解更多有关 python 中“保存”概念的信息。 .. 但我遇到了另一个问题,当我尝试使用 JSON 的 .dump 方法时它报告了这个错误

错误:

Traceback (most recent call last):
File "<string>", line 1, in <module>
File "<string>", line 32, in <module>
File "/data/data/com.hipipal.qpy3/files/lib/python3.2/python32.zip/json/__init__.py", line 177, in dump
io.UnsupportedOperation: not writable
Run Code Online (Sandbox Code Playgroud)

代码:

import os
import random
import json
with open("/storage/emulated/0/com.hipipal.qpyplus/scripts3/newgame2.txt") as data_file:
    data = json.load(data_file) 
save=data
print(save)
hero=dict(save)
print(hero)
level=int(0) 
job=str("none")
experience=int(0)
strength=int(0)
intelligence=int(0)
dexterity= int(0)
health= int(0)
magic= int(0)
luck= int(0)
if hero["level"]==0:
    level=int(0)
    job=str("none")
    experience=int(0)
    strength=int(0)
    intelligence=int(0)
    dexterity= …
Run Code Online (Sandbox Code Playgroud)

python string tuples stringio python-3.x

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

将列表的Python列表转换为字符串

如何最好地将Python中的列表列表转换为(例如)逗号分隔值,换行分隔行,字符串?理想情况下,我可以执行以下操作:

>import csv

>matrix = [["Frodo","Baggins","Hole-in-the-Ground, Shire"],["Sauron", "I forget", "Mordor"]]
> csv_string = csv.generate_string(matrix)
>print(csv_string)
Frodo,Baggins,"Hole-in-the-Ground, Shire"
Sauron,I forget,Mordor
Run Code Online (Sandbox Code Playgroud)

我知道Python有一个CSV模块,如在做题像这样,但是它的所有功能似乎一个文件对象进行操作。列表足够小,以至于使用文件是多余的。

我熟悉的加入功能,并有大量的SO答案。但这不会处理包含逗号的值,也不会处理多行,除非我将a嵌套join在另一个行中join

python csv stringio python-2.7

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

Pillow如何直接从StringIO打开上传的图像文件?

用户通过表单上传图像文件,我不想将原始上传的图像文件保存到磁盘,并通过Pillow从磁盘打开图像来调整图像大小.

我想首先在内存中调整此映像文件的大小,然后将调整大小的映像文件保存到磁盘.所以我导入StringIO作为缓冲区,但它不适用于Pillow.

这是代码:

Python3.4,Flask == 0.10.1,Pillow == 3.4.2

forms.py

class Form():
    img = FileField()
    submit = SubmitField()
Run Code Online (Sandbox Code Playgroud)

views.py

from io import StringIO
from PIL import Image
from .forms import Form

@app.route('/upload_img', methods=['GET', 'POST'])
def upload_img():
    form = Form()
    im = Image.open(StringIO(form.img.data.read())

    pass
Run Code Online (Sandbox Code Playgroud)

TypeError:initial_value必须是str或None,而不是字节

python stringio flask pillow

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

包含带有多个 csv 文件的 zip 文件的 Django 响应

我有一个算法可以输出一个元组列表,该列表已准备好写入 csv 文件。

我正在尝试写入 3 个 csv 文件(通过 StringIO,因此不写入磁盘),然后将它们完全压缩。之后,我想将其附加到 django 请求的响应中。

我不确定这样做的最有效方法是什么。我应该StringIO用来通过我的算法存储 3 个调用吗?在压缩它们之前,我应该先创建 csv 文件吗?我可以直接使用 1 zipfilecall 而不需要调用 3 StringIOs的中间步骤吗?

谢谢

python django zipfile stringio

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

是否有打开 StringIO 进行写入之类的事情?

我正在尝试使用 RSpec 来测试写入文件的类。但我希望测试速度快,因此我不想使用真实文件并写入磁盘,而是想在测试中使用 StringIO 并写入内存。

以一种非常简单的方式,假设我有这个测试:

RSpec.describe Writer do
  it 'replaces the contents of the file' do
    file = StringIO.new('foo')
    writer = described_class.new(file)
    one_contact = [{ 'name' => 'name', 'address' => 'address' }]

    writer.write(one_contact)

    expect(file.string).to eq('[{"name":"name1","address":"address1"}]')
  end
end
Run Code Online (Sandbox Code Playgroud)

假设 writer 类是这样的:

require 'json'

class Writer
  def initialize(file)
    @file = file
  end

  def write(contacts)
    file.truncate(0)
    file.write(contacts.to_json)
    file.flush
  end

  private

  attr_reader :file
end
Run Code Online (Sandbox Code Playgroud)

当我通过 Rspec 运行测试时,出现错误:

 Failure/Error: file.truncate(0)

 IOError:
   not opened for writing
Run Code Online (Sandbox Code Playgroud)

如果我更改为其他内容,那么我会在调用truncate的行中收到此错误。writefile

但是,如果我在 pry 中执行此操作,它会起作用:

$ …
Run Code Online (Sandbox Code Playgroud)

ruby rspec stringio

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

Python pip3 安装 StringIO 未找到网址:https://pypi.org/simple/stringio/

我正在运行 python 版本 3.6.9 和 pip3 版本 9.0.1。当我执行命令时

pip3 install StringIO
Run Code Online (Sandbox Code Playgroud)

它返回错误

Collecting StringIO
Exception:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/lib/python3/dist-packages/pip/commands/install.py", line 353, in run
    wb.build(autobuilding=True)
  File "/usr/lib/python3/dist-packages/pip/wheel.py", line 749, in build
    self.requirement_set.prepare_files(self.finder)
  File "/usr/lib/python3/dist-packages/pip/req/req_set.py", line 380, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/usr/lib/python3/dist-packages/pip/req/req_set.py", line 554, in _prepare_file
    require_hashes
  File "/usr/lib/python3/dist-packages/pip/req/req_install.py", line 278, in populate_link
    self.link = finder.find_requirement(self, upgrade)
  File "/usr/lib/python3/dist-packages/pip/index.py", line 465, in find_requirement
    all_candidates = self.find_all_candidates(req.name)
  File "/usr/lib/python3/dist-packages/pip/index.py", line …
Run Code Online (Sandbox Code Playgroud)

pip stringio python-3.x

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

标签 统计

stringio ×10

python ×6

django ×2

python-3.x ×2

zipfile ×2

amazon-s3 ×1

csv ×1

flask ×1

io ×1

perl ×1

pillow ×1

pip ×1

python-2.7 ×1

rspec ×1

ruby ×1

sinatra ×1

string ×1

tuples ×1

twitter ×1

wsgi ×1

zip ×1