统计所有当前目录下zip文件的jpg文件数
用java写个小程序,将一个zip包里所有照片数量统计出来导出到一个txt文件中,(zip里面全是照片)有大神能搞定吗
源自上面这个需求.
当然,我只能单纯从文件拓展名去分析了(只管jpg)...形式审查.
写了一段很难维护的代码,实际代码只有两行.
#!/usr/bin/env python3 import re, zipfile, glob with open("a.txt", 'w') as f: [f.write("%s %s\n" % (i, (lambda y: len(list(filter(lambda x: re.findall('\.jpg', x, re.I), zipfile.ZipFile(y).namelist()))))(i))) for i in glob.glob('*.zip')]
当然,如果要做实质审查或者不只是jpg,那么 filter的检验函数要变成更加严谨的,比如查看图片标识.
另一方面,两行代码,这么这样了吧.
2014年3月20日 21:44
>>> for i in *.zip; do echo -n $i $'\t'; 7z l $i '*.jpg' | awk '/^---/{p=!p;}/^[^-]/{if(p){print}}' | wc -l; done
a.zip 1
b.zip 2
2014年3月21日 15:26
awk看得有点晕. 差点不认得了