从Python文档中,我选择了折叠片段来压缩单个文件(用于一个烧瓶项目)。
我必须在temploc中创建一个压缩文件:/home/workspace/project/temploc/zipfile.zip
下面是我要压缩的文件:/home/workspace/project/temploc/file_to_be_zipped.csv
from zipfile import ZipFile
def zip_file(self, output, file_to_zip):
try:
with ZipFile(output, 'w') as myzip:
myzip.write(file_to_zip)
except:
return None
return output此代码在temploc中创建一个zip文件,但具有zip文件路径的完整目录结构。
def prepare_zip(self):
cache_dir = app.config["CACHE_DIR"] #-- /home/workspace/project/temploc
zip_file_path = os.path.join(cache_dir, "zipfile.zip")
input_file = '/home/workspace/project/temploc/file_to_be_zipped.csv'
self.zip_file(zip_file_path, input_file)但是上面的代码是创建一个具有给定路径目录结构的zip文件:
zipfile.zip
├──home
│ ├── workspace
│ │ └── project
│ │ └──temploc
│ │ └── file_to_be_zipped.csvBUt我只想要这样的结构:
zipfile.zip
└── file_to_be_zipped.csv我没有得到我失去的东西。
发布于 2016-10-20 15:20:20
您应该使用第二次论证 of ZipFile.write在归档文件中设置正确的文件名:
import os.path
...
myzip.write(file_to_zip, os.path.basename(file_to_zip))https://stackoverflow.com/questions/40157321
复制相似问题