tarfile Beispiel
Verfasst: Dienstag 25. Februar 2014, 18:57
Hallo,
Könnte mir jemand ein funktionierendes Beispiel mit tarfile geben? Es soll ein paar Dateien verpacken, wobei die Dateien im Archiv andere Namen haben sollten als die Originalen. Bei mir klappt das nicht und ich weiß nicht woran es scheitert:
Könnte mir jemand ein funktionierendes Beispiel mit tarfile geben? Es soll ein paar Dateien verpacken, wobei die Dateien im Archiv andere Namen haben sollten als die Originalen. Bei mir klappt das nicht und ich weiß nicht woran es scheitert:
Code: Alles auswählen
In [47]: cat 1
hello
In [48]: cat 2
dear
In [49]: cat 3
world
In [50]: tar = tarfile.open("sample.tar", "w")
In [51]: tar.addfile(tar.gettarinfo("1","a"))
In [52]: tar.addfile(tar.gettarinfo("2","b"))
In [53]: tar.addfile(tar.gettarinfo("3","c"))
In [54]: tar.close()
In [55]: tar = tarfile.open("sample.tar", "r")
In [56]: tar.extractfile("a").read()
Out[56]: 'b\x00\x00\x00\x00\x00'
In [57]: tar.extractfile("c").read()
Out[57]: '\x00\x00\x00\x00\x00\x00'
In [58]: tar.extractfile("b").read()
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
/home/joe/projects/eclipse_ws/nubisave_clone/nubisave/CloudFusion/test/<ipython-input-58-bc02f820fb98> in <module>()
----> 1 tar.extractfile("b").read()
/usr/lib/python2.7/tarfile.pyc in extractfile(self, member)
2110
2111 if isinstance(member, basestring):
-> 2112 tarinfo = self.getmember(member)
2113 else:
2114 tarinfo = member
/usr/lib/python2.7/tarfile.pyc in getmember(self, name)
1794 tarinfo = self._getmember(name)
1795 if tarinfo is None:
-> 1796 raise KeyError("filename %r not found" % name)
1797 return tarinfo
1798
KeyError: "filename 'b' not found"