2016-09-30 6 views
0

Я пытаюсь закрепить шейп-файл. Я выбрал все компоненты шейпинга файлов LOCK и .CPG. По какой-то причине они не могут быть загружены на наш веб-сайт и вызывают проблемы.Закрепление отдельных файлов застревает в цикле

Я попытался использовать следующий код, но он продолжает застревать в цикле и падает. У меня есть отдельная папка, которую можно легко зашифровать с помощью метода shutil. Однако, поскольку я пытаюсь идентифицировать файлы для zip, я должен использовать модуль Zipfile.

rtc_shp = r"path/to/shp 

zip = zipfile.ZipFile(os.path.join(datafolder, "Real_Time_Closures.zip"), "w") 

for f in glob.glob(rtc_shp.replace(".shp",".*")): 
    if not f.endswith(".lock"): 
     if not f.endswith(".cpg"): 
      zip.write(f, basename(f)) 

shutil.make_archive(indivfolder, "zip", indivfolder) 

ответ

0

Я обошел цикл, создав пустой список, а затем добавив имена файлов в список. Затем я написал содержимое списка в zip-файл.

zip = zipfile.ZipFile(os.path.join(datafolder, "MMO_Real_Time_Closures.zip"), "w", zipfile.ZIP_DEFLATED) 

shp_zip_list = [] 

for f in glob.glob(rtc_shp.replace(".shp",".*")): 
    if not f.endswith(".lock"): 
     if not f.endswith(".cpg"): 
      shp_zip_list.append(f) 

for f in shp_list: 
    zip.write(f, basename(f)) 

zip.close() 

shutil.make_archive(indivfolder, "zip", indivfolder) 
Смежные вопросы