2017-02-13 3 views
1

Я пытаюсь сохранить 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) 

Это экономит почтовый файл в каталоге /tmp. Однако, когда я дважды щелкаю zip-файл, чтобы разархивировать его. Он создает файл zip в новом каталоге tmp. Как я могу сохранить заархивированный файл как file.xml вместо /tmp/file.xml в каталоге tmp?

Или, может быть, есть более простой способ сделать это с помощью модуля subprocess?

ответ

0

Вы можете изменить каталог на /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)