Согласно документации Python:Python и ZipFile модуль
ZipFile.extract (член [, путь [, PWD]]) Извлечение элемента из архива в текущий рабочий каталог; член должен быть его полным именем или объектом ZipInfo). Информация о файле извлекается как можно точнее. путь указывает другой каталог для извлечения в. член может быть имя файла или объект ZipInfo. pwd - пароль, используемый для зашифрованных файлов .
У меня есть большое количество файлов в формате zip, каждый из которых содержит в себе 1000 архивных файлов. С помощью функции выше можно извлечь только те файлы, которые мне нужны от каждого архивного архива:
def getAIDlist(aidlist_to_keep,ifile,folderName):
archive = zipfile.ZipFile(ifile) #
aidlist=archive.namelist() # gets the names of all files in the zipped archive
print "AIDs to keep",aidlist_to_keep
print "Number of AIDs in the zipped archive ",len(aidlist)
path='/2015/MyCODE/'+folderName
for j in aidlist_to_keep:
for k in aidlist:
if j in k:
try:
archive.extract(k,path)
except:
print "Could Not Extract file ",(j)
pass
return
if __name__ == '__main__':
getAIDlist(['9593','9458','9389'],"0009001_0010000.zip","TestingFolder")
В идеале я хочу извлеченные файлы, которые будут сохранены в TestingFolder
, но вместо этого они хранятся во вновь созданной папке 0009001_0010000.zip
внутри TestingFolder
,
Как я могу направить извлеченные файлы непосредственно в TestingFolder
, но без создания новой папки 0009001_0010000.zip
?
Я пробовал ваш код .. Для меня файлы напрямую извлекаются в TestingFolder. Нет новой папки – sailesh
Действительно? Какую версию Python вы используете? Я запускаю Python 2.7.9 :: Anaconda 2.1.0 (x86_64). Я пробовал это несколько раз, но папка 0009001_0010000.zip всегда создается внутри TestingFolder. – Alex