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() 
                        As Stefano pointed out, you can use TarFile.addfile and StringIO.
import tarfile, StringIO  data = 'hello, world!'  tarinfo = tarfile.TarInfo('test.txt') tarinfo.size = len(data)  tar = tarfile.open('test.tar', 'a') tar.addfile(tarinfo, StringIO.StringIO(data)) tar.close()   You'll probably want to fill other fields of tarinfo (e.g. mtime, uname etc.) as well.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With