从zip存档中的文件夹中提取内容

时间:2018-01-23 21:10:45

标签: python python-2.7 gitlab

我正在尝试从GitLab存储库中获取一个zip文件,访问其中唯一的文件夹(文件夹名称始终以相同的字符串开头),并将该文件夹的内容复制到另一个zip文件中。 / p>

示例gitlab_repo.zip:

gitlab_repo.zip
---------------------
 gitlab_repo_folder
  ├── subfolder
  |   ├── subfolder_file_1
  |   └── subfolder_file_2
  ├── file_1
  └── file_2

final.zip示例:(预期输出)

final.zip
---------------------
  ┌── subfolder
  |   ├── subfolder_file_1
  |   └── subfolder_file_2
  ├── file_1
  └── file_2

我目前的代码片段,它将所有内容(包括文件夹)写入新存档:

final = '/tmp/final.zip'
gitlab_repo='https://gitlab.com/...'
r = requests.get(gitlab_repo, auth=('user', 'pass'))
open(final, 'wb').write(r.content)

有条件的信息:

每次推送到存储库时都会触发此代码,因此我需要自动执行该过程

我的Python技能水平:我观看了一些youtube视频,我正在关注Udemy的Python课程

我应该使用哪些帮助或提示来尽可能高效地实现这一目标,这是非常有用的!

1 个答案:

答案 0 :(得分:0)

我认为这个ZIP只是一些git存储库的导出。因此,在此存储库中定期ZIP文件的最有效方法是将更改提取到整个存储库的本地克隆并压缩此单个目录。

类似的东西:

cd gitlab_repo
git pull
cd gitlab_repo_folder
zip -9r $TEMPDIR/output.zip .