我正在尝试压缩shapefile。我选择了shapefile栏的所有组件LOCK和.CPG文件。由于某些原因,这些不能上传到我们的网站,并导致问题。
我尝试使用以下代码,但它一直陷入循环并崩溃。我有一个单独的文件夹,可以使用shutil方法很容易地压缩。但是,当我试图识别要压缩的文件时,我必须使用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 :(得分: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)