这是我第一篇关于Python的文章,我对它有点陌生。
不幸的是,我需要使用Windows作为操作系统。
我使用的是python.org中的python 3.3.2。
我正试图从内存中创建一个tar文件,并添加一个file.txt文件。
from io import StringIO
import tarfile
archive_files = []
data = ["DATA1 "]
data.append("DATA2 ")
archive_files.append(("FILE.txt", "\n".join(data)))
tar = tarfile.open ("file.tar", "w:tar")
for name, data in archive_files:
info = tarfile.TarInfo(name)
info.size = len(data)
tar.addfile(info, StringIO(data))
tar.close()
这是错误:
Traceback (most recent call last):
File "<string>", line 420, in run_nodebug
File "C:\home\rs94036\src\python\testTar.py", line 14, in <module>
tar.addfile(info, StringIO(data))
File "C:\Python33\lib\tarfile.py", line 1957, in addfile
copyfileobj(fileobj, self.fileobj, tarinfo.size)
File "C:\Python33\lib\tarfile.py", line 274, in copyfileobj
dst.write(buf)
TypeError: 'str' does not support the buffer interface
我知道我的问题在第14行,但我不明白出了什么问题。
这段代码在Linux中使用,特别是在pacman(ArchLinux包管理器自动化测试)中。
有人能帮我吗?
谢谢
瑞南