Python 控件Zipfile目录结构

Python 控件Zipfile目录结构,python,zip,Python,Zip,我正在尝试在/tmp目录中保存zipfile。以下是我的代码: import zipfile log.info('ZippingXMLFile...') myfilepath = '/tmp/%s' % self.file_name myzippath = myfilepath.replace('.xml', '.zip') zipfile.ZipFile(myzippath, 'w', zipfile.ZIP_DEFLATED).write(myfilepath) 这将zip文件保存在/

我正在尝试在/tmp目录中保存zipfile。以下是我的代码:

import zipfile
log.info('ZippingXMLFile...')

myfilepath = '/tmp/%s' % self.file_name
myzippath = myfilepath.replace('.xml', '.zip')

zipfile.ZipFile(myzippath, 'w', zipfile.ZIP_DEFLATED).write(myfilepath)
这将zip文件保存在
/tmp
目录中。但是,当我双击zip文件解压时。它在新的
tmp
目录中创建
zip
文件。如何将压缩文件保存为
file.xml
而不是
/tmp/file.xml
目录中的
tmp


或者,使用
子流程
模块有一种更简单的方法来实现这一点?

您可以在创建zip文件之前将目录更改为
/tmp
,然后在完成后再更改:

import zipfile
import os

log.info('ZippingXMLFile...')

saved = os.getcwd()
os.chdir('/tmp')
myzippath = self.file_name.replace('.xml', '.zip')
zipfile.ZipFile(myzippath, 'w', zipfile.ZIP_DEFLATED).write(self.file_name)
os.chdir(saved)

您可以在创建zip文件之前将目录更改为
/tmp
,然后在完成后将其更改为退出:

import zipfile
import os

log.info('ZippingXMLFile...')

saved = os.getcwd()
os.chdir('/tmp')
myzippath = self.file_name.replace('.xml', '.zip')
zipfile.ZipFile(myzippath, 'w', zipfile.ZIP_DEFLATED).write(self.file_name)
os.chdir(saved)