【python】批量解压(.bz2)的文件

说是解压.bz2其实都可以!!!

额,我又无耻的当了伸手党

再次感谢stackoverflow

import sys
import os
import bz2
from bz2 import decompress

path = "你要解压的文件路径"
un_path="你要把解压出来的文件放在哪的路径"
for(dirpath,dirnames,files)in os.walk(path):
	for filename in files:
		filepath = os.path.join(dirpath, filename)
		newfilepath = os.path.join(un_path, filename + '.ppm')
		with open(newfilepath, 'wb') as new_file, bz2.BZ2File(filepath, 'rb') as file:
			for data in iter(lambda : file.read(100 * 1024), b''):
				new_file.write(data)


组合使用来自

http://stackoverflow.com/questions/16963352/decompress-bz2-files


解释一下:

os.walk不用多说,遍历路径下的文件,是所有!!子文件夹的文件也遍历,是不是很方便!!!

os.path.join按我理解就是链接字符串,不不不,这里是把文件名连起来酱紫

写入文件是‘wb’记得前面配上路径,打开文件 bz2,BZ2File是专门解压bz2的,其他用其他语句解压就好

iter是迭代器,我讲不清楚啊啊啊

要看详情

http://www.cnblogs.com/huxi/archive/2011/07/01/2095931.html

这个这个,我弱

还有这个是专门讲iter(lambda)的

http://caisbalderas.com/blog/iterating-with-python-lambdas/

这篇知乎文也很好讲lambda的

https://www.zhihu.com/question/20125256


更多详情请看各种google哈哈哈哈哈哈66666



你可能感兴趣的:(【python】批量解压(.bz2)的文件)