2013-05-30 6 views
0

У меня есть zip-файл, содержащий тысячи смешанных файлов .xml и .csv. Я использовал следующее для извлечения архива:Извлечение извлеченного с python

import zipfile 

zip = zipfile.ZipFile(r'c:\my.zip') 

zip.extractall(r'c:\output') 

Теперь мне нужно, чтобы извлечь тысячи отдельных почтовых файлов, содержащихся в «C: \ выход» папку. Я планирую объединить только. CSV-файлы в один файл. Спасибо вам за помощь!

+0

Так что вы, что вы действительно является ZipFile содержащий zipfiles? –

+0

Да, он распаковывается как zipped .csv и .xml файлы. – user2437728

ответ

1

Попробуйте этот код:

import zipfile , os 

zip = zipfile.ZipFile(r'c:/my.zip') 

zip.extractall(r'c:/output') 

filelist = [] 
for name in zip.namelist(): 
    filelist.append(name) 



zip.close() 
for i in filelist: 


    newzip = zipfile.ZipFile(r'c:/output/'+str(i)) 
    for file in newzip.namelist(): 
     if '.csv' in file : 
      newzip.extract(file,r'c:/output/') 
    newzip.close() 
    os.remove(r'c:/output/'+str(i)) 
+0

Спасибо за код! Он дает следующую ошибку: – user2437728

+0

EOL во время выполнения строкового литерала – user2437728

+0

Также: Traceback (последний последний вызов): Файл «C: /Python33/extractzip.py», строка 3, в zip = zipfile.ZipFile (r 'C: \ ERCOT Pricing \ Test') Файл «C: \ Python33 \ lib \ zipfile.py», строка 912, в __init__ self.fp = io.open (file, modeDict [mode]) PermissionError: [ Errno 13] Permission denied: 'C: \\ ERCOT Pricing \\ Test' – user2437728

Смежные вопросы