一个主文件夹,其中一个文件夹名为old
,另一个名为new
旧的有一些文件夹。新的文件夹中有几个名称相同,仅此而已。
我想先删除old
中不存在的new
文件夹,然后:进行一个循环,将每个文件-同名-pair放入其中。
以下行:
arcpy.Append_management(["shpfromonefolder.shp", "shpfromsecondfolder.shp"],"NO_TEST")
例如:一个文件夹中的land.shp以及另一文件夹中的land.shp,因此它将为:
arcpy.Append_management(["land.shp", "land.shp"],"NO_TEST")
答案 0 :(得分:1)
如果存在old_path
中的文件夹,new_path
中的文件夹将被删除:
import os
import shutil
old_path = r"old file path"
new_path = r"old file path"
for folder in os.listdir(old_path):
if folder not in os.listdir(new_path):
shutil.rmtree(os.path.join(old_path, folder))
这将找到匹配的形状文件并将它们传递给arcpy.Append_management()
:
import os
import arcpy
for dir_path, dir_names, file_names in arcpy.da.Walk(workspace=new_path, datatype="FeatureClass"):
for filename in file_names:
new_file_path = os.path.join(dir_path, filename)
folder = os.path.basename(os.path.dirname(new_file_path))
old_file_path = os.path.join(old_path, folder, filename)
if os.path.exists(old_file_path):
arcpy.Append_management(inputs=[new_file_path], target=old_file_path, schema_type="NO_TEST")