文件存在错误 - Python tarfile

时间:2012-07-17 03:23:02

标签: python tarfile

我在Ubuntu环境中遇到了一个有趣的tarfile包问题。我在/ tmp /文件夹中有jdk软件包(jdk-7u5-linux-x64.tar.gz)和另一个软件包(blah.tar.gz)。两者都可以(这意味着我可以通过右键单击它们来提取它们)。使用blah.tar.gz包,我使用流动的代码:

import tarfile 
tar = tarfile.open('/tmp/blah.tar.gz', 'r:gz') 
tar.extractall()
tar.close() 

效果很好。但是,当我尝试使用jdk包时(tar = tarfile.open('/ tmp / jdk-7u5-linux-x64.tar.gz','r:gz'))。我收到以下错误:

In [26]: tar.extractall()
---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)

/home/bubuzzz/Projects/secude/java/jdk/<ipython console> in <module>()

/usr/lib/python2.7/tarfile.pyc in extractall(self, path, members)
   2044                 tarinfo = copy.copy(tarinfo)
   2045                 tarinfo.mode = 0700
-> 2046             self.extract(tarinfo, path)
   2047 
   2048         # Reverse sort directories.


/usr/lib/python2.7/tarfile.pyc in extract(self, member, path)
   2081 
   2082         try:
-> 2083             self._extract_member(tarinfo, os.path.join(path, tarinfo.name))
   2084         except EnvironmentError, e:
   2085             if self.errorlevel > 0:

/usr/lib/python2.7/tarfile.pyc in _extract_member(self, tarinfo, targetpath)
   2165             self.makedev(tarinfo, targetpath)
   2166         elif tarinfo.islnk() or tarinfo.issym():
-> 2167             self.makelink(tarinfo, targetpath)
   2168         elif tarinfo.type not in SUPPORTED_TYPES:
   2169             self.makeunknown(tarinfo, targetpath)

/usr/lib/python2.7/tarfile.pyc in makelink(self, tarinfo, targetpath)
   2240             # For systems that support symbolic and hard links.

   2241             if tarinfo.issym():
-> 2242                 os.symlink(tarinfo.linkname, targetpath)
   2243             else:
   2244                 # See extract().


OSError: [Errno 17] File exists

我仍然不知道这里有什么问题。当我将jdk包移动到另一个文件夹并使用该代码时,它再次运行良好。在运行代码之前,“tmp”文件夹为空。有谁知道如何解决这个问题?

0 个答案:

没有答案
相关问题