Python 从文件夹中的多个.zip读取.txt

Python 从文件夹中的多个.zip读取.txt,python,python-2.7,Python,Python 2.7,我有一个包含多个zip文件的文件夹(未压缩)(文件夹中没有其他文件类型)。每个zip都有相同类型的文本文件,其中包含保存在中的不同数据 我知道如何分别读入每个文件,但我希望在不必键入每个zip名称的情况下循环该过程。zipfile归档文件似乎不允许通配符,因此我无法使用此方法循环。是否可以使用glob循环流程 目标是在不提取所有ZipFile的情况下获取机构名称 单文件读取 import os os.listdir('C:\\NTM\\Test\\') ['00003_32_332.zi

我有一个包含多个zip文件的文件夹(未压缩)(文件夹中没有其他文件类型)。每个zip都有相同类型的文本文件,其中包含保存在中的不同数据

我知道如何分别读入每个文件,但我希望在不必键入每个zip名称的情况下循环该过程。zipfile归档文件似乎不允许通配符,因此我无法使用此方法循环。是否可以使用glob循环流程

目标是在不提取所有ZipFile的情况下获取机构名称

单文件读取

import os  
os.listdir('C:\\NTM\\Test\\')  
['00003_32_332.zip', '00011_273_569.zip', '00012_258_276.zip']  
import glob  
glob.glob('C:\\NTM\\Test\\*.zip')  
['C:\\NTM\\Test\\00003_32_332.zip', 'C:\\NTM\\Test\\00011_273_569.zip', 'C:\\NTM\\Test\\00012_258_276.zip']  
import zipfile  
archive=zipfile.ZipFile('C:\\NTM\\Test\\00011_273_569.zip')  
testagency=archive.open('agency.txt')  
testagency.read()  
'agency_id,agency_name,nVRT,ValleyRide'  
更新:
现在,我可以循环浏览zip文件并获取文本文件-我无法从文件夹中的所有zip文件打印机构名称。我的当前代码仅打印文件夹中最后一个zip文件的文本文件中最后一个机构的名称。我是否缺少一些复合语句结构

def csv文件读取器(文件对象):
reader=csv.DictReader(文件对象,分隔符=',')
对于读卡器中的行:
打印(第[‘机构名称’]行)

如果name='main':
将archive.open('agency.txt')作为f_obj:
csv语音读取器(f_obj)

Whatcom交通管理局

谢谢


示例代码

import glob
import zipfile

dirName = '/backup/'
zipList = glob.glob(diName+'*.zip')

for zipname in zipList:
  archive = zipfile.ZipFile(zipname)
  fileList = archive.namelist()
  for fileName in fileList:
   if fileName.endswith('.txt'):
     archive.extract(fileName)
  archive.close()

因为我无法对富士公司的评论发表评论

这是固定代码

import glob
import zipfile

dirName = 'C:/test/'
zipList = glob.glob(dirName + '*.zip')
print(zipList)

for zipname in zipList:
    archive = zipfile.ZipFile(zipname)
    fileList = archive.namelist()
    for fileName in fileList:
        if fileName.endswith('.txt'):
            archive.extract(fileName)
            print(fileName)
    archive.close()


对于glob.glob('C:\\NTM\\Test\\*.zip')中的存档文件名:archive=zipfile.zipfile(存档文件名)
。你知道循环,对吧?你的名字!没错,好吧,我误解了你的问题。因此,我的答案无法解决您的问题。是否要从所有.zip文件中提取所有.txt文件?我希望只提取所有zip文件中的一个文本文件。文本文件基本上告诉我代理机构的名称。一旦我记下来了,我就想通过循环看看是否有重复的代理机构。谢谢!我觉得这里面少了点什么?它不会返回我可以与您共享的错误,但它也不会运行
import glob
import zipfile

dirName = 'C:/test/'
zipList = glob.glob(dirName + '*.zip')
print(zipList)

for zipname in zipList:
    archive = zipfile.ZipFile(zipname)
    fileList = archive.namelist()
    for fileName in fileList:
        if fileName.endswith('.txt'):
            archive.extract(fileName)
            print(fileName)
    archive.close()