Python Zip-File,通配符

时间:2011-04-22 12:31:26

标签: python

我想知道如何告诉Python使用通配符从zip文件夹中仅提取“.txt”文件。这段代码对我很好:

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

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

extractor.extract(".*.txt")

但它没有奏效..任何想法???

4 个答案:

答案 0 :(得分:5)

首先,您需要使用namelist()的文件名列表。 然后,您可以使用txtfiles = fnmatch.filter(fn_list,"*.txt")过滤“* .txt”文件 现在您可以逐个提取文件:

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

答案 1 :(得分:3)

  

我只需要python来提取当前目录中的.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)

答案 2 :(得分:2)

您需要获取ZIP中所有文件的列表,然后逐个询问每个文件。 Zipfile使用namelist()方法为您提供该列表。

答案 3 :(得分:1)

使用函数namelist()获取文件的名称。然后从列表中选择txt文件并逐个提取它们。