我想知道如何告诉Python使用通配符从zip文件夹中仅提取“.txt”文件。这段代码对我很好:
extractor.extract("\websitefiles\test.hmtl")"
如何使用相同的代码提取当前目录中的所有.txt文件?我在想这样的事情:
extractor.extract(".*.txt")
但它没有奏效..任何想法???
答案 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文件并逐个提取它们。