没有完整路径的python文件
我制作了一个如下的小脚本来读取一组文件并对它们进行tar,它可以很好地接受压缩文件在解压缩时包含文件的完整路径。有没有一种不用目录结构的方法没有完整路径的python文件,python,django,tar,Python,Django,Tar,我制作了一个如下的小脚本来读取一组文件并对它们进行tar,它可以很好地接受压缩文件在解压缩时包含文件的完整路径。有没有一种不用目录结构的方法 compressor = tarfile.open(PATH_TO_ARCHIVE + re.sub('[\s.:"-]+', '', str(datetime.datetime.now())) + '.tar.gz', 'w:gz') for file in os.listdir(os.path.join(settings.MEDIA_ROO
compressor = tarfile.open(PATH_TO_ARCHIVE + re.sub('[\s.:"-]+', '',
str(datetime.datetime.now())) + '.tar.gz', 'w:gz')
for file in os.listdir(os.path.join(settings.MEDIA_ROOT, PATH_CSS_DB_OUT)):
compressor.add(os.path.join(settings.MEDIA_ROOT, PATH_CSS_DB_OUT) + file)
compressor.close()
我创建了一个上下文管理器,用于更改当前工作目录,以便使用tar文件处理此操作
import contextlib
@contextlib.contextmanager
def cd_change(tmp_location):
cd = os.getcwd()
os.chdir(tmp_location)
try:
yield
finally:
os.chdir(cd)
然后,将所有内容打包到您的案例中:
with cd_change(os.path.join(settings.MEDIA_ROOT, PATH_CSS_DB_OUT)):
for file in os.listdir('.'):
compressor.add(file)
看看签名:
。。。如果给定,arcname
为存档中的文件指定替代名称
谢谢格兰特,我感谢你在这方面的帮助。它成功了,我早些时候发布了另一个问题,你看起来像是在另一个问题上提供帮助的人。非常感谢