2017-06-21 167 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)