Python 如何避免覆盖文件

Python 如何避免覆盖文件,python,tarfile,Python,Tarfile,我们正在使用python的tarFile库将给定文件集解压到目标目录 tarGzipFile = tarfile.open(fileName) tarGzipFile.extractall(targetDir + '/') 这里,如果同一个文件存在于多个tar.gz文件中,则该文件在目标目录中被过度写入。如何更改代码以避免覆盖?同时也在寻找类似于tar的选项--备份none或number…这样,如果文件存在,那么它会在末尾加上~或add number作为前缀。您可以使用targetzipfil

我们正在使用python的tarFile库将给定文件集解压到目标目录

tarGzipFile = tarfile.open(fileName)
tarGzipFile.extractall(targetDir + '/')

这里,如果同一个文件存在于多个tar.gz文件中,则该文件在目标目录中被过度写入。如何更改代码以避免覆盖?同时也在寻找类似于tar的选项--备份none或number…这样,如果文件存在,那么它会在末尾加上~或add number作为前缀。

您可以使用targetzipfile.getmembers()列出存档中的文件,并将members=传递给extractall,只包含您希望提取的文件(即,排除已经存在的文件)。os.path.exists()可用于检查文件是否存在。

tarfile.open(fileName,“a”)
?@padraicconningham他希望提取容器文件,而不是将文件附加到现有容器文件中。