python将字符串直接写入tarfile [英] python write string directly to tarfile

查看:155
本文介绍了python将字符串直接写入tarfile的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有办法直接写一个字符串到tarfile?从 http://docs.python.org/library/tarfile.html 看起来像只有已经写入文件系统的文件可以被添加。

解决方案

我会说这是可能的,通过TarInfo和TarFile玩。传递一个StringIO作为一个文件对象的addfile。

非常粗糙,但是工作原理

  import tarfile 
import StringIO
$ b $ tar = tarfile.TarFile(test.tar,w)

string = StringIO.StringIO()
string.write( hello)
string.seek(0)
info = tarfile.TarInfo(name =foo)
info.size = len(string.buf)
tar.addfile (tarinfo = info,fileobj = string)

tar.close()


Is there a way to write a string directly to a tarfile? From http://docs.python.org/library/tarfile.html it looks like only files already written to the file system can be added.

解决方案

I would say it's possible, by playing with TarInfo e TarFile.addfile passing a StringIO as a fileobject.

Very rough, but works

import tarfile
import StringIO

tar = tarfile.TarFile("test.tar","w")

string = StringIO.StringIO()
string.write("hello")
string.seek(0)
info = tarfile.TarInfo(name="foo")
info.size=len(string.buf)
tar.addfile(tarinfo=info, fileobj=string)

tar.close()

这篇关于python将字符串直接写入tarfile的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆