求个 idea, Python 等数量压缩文件

2019-05-21 16:46:54 +08:00
 mahonejolla
例子是,我这有一个文件夹,这个文件夹里面有几万个图片,都是有序列的。现在想每 1000 张图片压缩成一个压缩包。最后一次不足 1000 张同样压缩成一个包。这个该怎么实现呢?如果是你,你会采取什么方法呢?
1500 次点击
所在节点    Python
5 条回复
minami
2019-05-21 16:56:29 +08:00
获取文件名列表,然后用 tar 打包。其实 shell 脚本就能搞定
chenqh
2019-05-21 18:10:37 +08:00
```
import os
tmp_li = []
for name in os.listdir(path):
abs_path = os.path.join(path, name)
tmp_li.append(abs_path)
if len(tmp_li) == 10000:
do_with(tmp_li)
tmp_li = []
if tmp_li:
do_with(tmp_li)
```
大概这个样子
cxyfreedom
2019-05-21 18:31:13 +08:00
有序列的话,不就是切片然后批量压缩吗?要快的话用多进程。shell 或者其他语言实现都是一样的
thedrwu
2019-05-21 20:55:41 +08:00
几行 shell 就解决了:

a=`ls *.jpg` ; while [ -n "$a" ]; do zip `echo -e "$a" | head -1`.zip `echo -e "$a" | head -1000` ; a=`echo -e "$a" | sed -n '1001,$p' ` ; done

选择合适的工具做合适的事。非要 Python 的话,os.system("""…""") 最合适了 (逃…
mahonejolla
2019-05-21 20:59:59 +08:00
@thedrwu #4 哭泣,是时候在学一发 shell 了?逃…<<<------轮子哥语气。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/566267

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX