Python的zip文件,通配符

我想知道我怎么能告诉Python从一个zip文件夹中只提取名“.txt”文件,使用通配符。 此代码工作正常,我:

extractor.extract("\websitefiles\test.hmtl")"

我如何使用相同的代码来提取在当前目录下所有.txt文件? 我想是这样的:

extractor.extract(".*.txt")

但未能奏效。任何想法?

--------------解决方案-------------

我只需要蟒蛇提取的.txt在当前目录中的文件,是不超过3兆字节。

#!/usr/bin/env python
import zipfile
from contextlib import closing

MiB = 2**20 # mebibyte

with closing(zipfile.ZipFile("example.zip")) as zfile:
for info in zfile.infolist():
if info.filename.endswith('.txt') and 0 < info.file_size <= 3*MiB:
zfile.extract(info)

首先,您需要的文件名 ​​列表,使用namelist() 然后,您可以过滤用的“* .txt”文件txtfiles = fnmatch.filter(fn_list,"*.txt")现在,你可以用一个解压文件之一:

extracts = [ extractor.extract(txt) for txt in txtfiles ]

您将需要得到的ZIP的所有文件的清单,然后要求每个人,一次一个。 zip文件有namelist()方法来给你的列表中。

使用函数namelist()来获得的文件的名称。 然后从列表中选择的txt文件和一个提取出来的。

分类:蟒蛇 时间:2015-03-15 人气:5
本文关键词: 蟒蛇
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 6.119 (s). 10 q(s)