首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZipFile使用zip中的所有文件夹创建zip

ZipFile使用zip中的所有文件夹创建zip
EN

Stack Overflow用户
提问于 2016-10-20 14:29:49
回答 1查看 41关注 0票数 0

Python文档中,我选择了折叠片段来压缩单个文件(用于一个烧瓶项目)。

我必须在temploc中创建一个压缩文件:/home/workspace/project/temploc/zipfile.zip

下面是我要压缩的文件:/home/workspace/project/temploc/file_to_be_zipped.csv

代码语言:javascript
复制
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文件路径的完整目录结构。

代码语言:javascript
复制
  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文件:

代码语言:javascript
复制
zipfile.zip    
├──home 
│   ├── workspace
│   │   └── project
│   │       └──temploc 
│   │           └── file_to_be_zipped.csv

BUt我只想要这样的结构:

代码语言:javascript
复制
zipfile.zip    
   └── file_to_be_zipped.csv

我没有得到我失去的东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-20 15:20:20

您应该使用第二次论证 of ZipFile.write在归档文件中设置正确的文件名:

代码语言:javascript
复制
import os.path

...

myzip.write(file_to_zip, os.path.basename(file_to_zip))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40157321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档