2017-06-21 121 views
0

我试图通过一个文件夹来压缩其中的zip文件,并且只提取以特定前缀开头的csv文件。从CSV文件的字符串开始读取CSV文件

下面是代码:

for name in glob.glob(path + '/*.zip'): 
    zf = zipfile.ZipFile(name) 
    csv_file = pd.read_csv(zf.open('Common_MarketResults*.csv')) 
    df = pd.concat(csv_file, axis=0).reset_index() 

CSV文件中有我使用的字符串,这将是在每一个zip文件后,不同的一些日期。我收到以下错误信息:

KeyError异常:“没有名为“Common_MarketResults * .csv格式的档案项目”

+0

zf.open('Common_MarketResults * .csv')中的通配符“*”正常工作为'*'。 – rodgdor

回答

0

搜索在使之成为可能的文件名字符串。

sub = 'Common_MarketResults' 
suf = 'csv' 
data = [] 

for name in glob.glob(path + '*.zip'): 
    zf = zipfile.ZipFile(name) 
    zf_nfo = zipfile.ZipFile(name).namelist() 
    for s in zf_nfo: 
     if sub in s and suf in s: 
      csv_file_str = s 
    csv_file = pd.read_csv(zf.open(csv_file_str)) 
    csv_file['file_name'] = csv_file_str 
    data.append(csv_file)