gpt4 book ai didi

python - 在 tarfile 中区分来自不同驱动器的文件

转载 作者:行者123 更新时间:2023-11-28 22:34:05 26 4
gpt4 key购买 nike

我正在尝试使用 tarfile 库归档和压缩分布在多个驱动器上的多个目录。问题是即使两个文件存储在不同的驱动器中,tarfile 也会合并路径。例如:

import tarfile
with tarfile.open(r"D:\Temp\archive.tar.gz", "w:gz") as tf:
tf.add(r"C:\files\foo")
tf.add(r"D:\files\bar")

将创建包含以下文件的存档:

archive.tar.gz
└─ files
├─ foo
└─ bar

有没有办法创建这个?

archive.tar.gz
├─ C
| └─ files
| └─ foo
└─ D
└─ files
└─ bar

最佳答案

您需要使用 tarfile.addfile() 而不是 tarfile.add() :

使用 TarInfo,您可以指定将在存档中使用的文件名。

例子:

with open(r"C:\files\foo", "rb") as ff:
ti = tf.gettarinfo(arcname="C/files/foo", fileobj=ff)
tf.addfile(ti, ff)

或者,一个更快的解决方案:

tf.add('/path/to/dir/to/add/', arcname='C/files')
tf.add('/path/to/otherdir/to/add/', arcname='D/files')

关于python - 在 tarfile 中区分来自不同驱动器的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39279090/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com