我有一个我试图覆盖的位置shapefile。我已启用地理处理选项以覆盖所有地理处理操作。我打开了我创建原始位置shapefile的分析工具,并尝试使用相同的输入和输出重新运行该工具。我收到两个错误,1,警告000725,表示输出文件已存在,1错误000723,表示我的目录中的输入文件不存在或不受支持。有什么想法吗?
答案 0 :(得分:1)
关于输入不存在的第二次警告有很多可能的原因;也许你可以提供更多信息。
我熟悉有关已存在输出的第一个警告。这通常是因为环境设置“env.overwriteOutput”无法正常工作。典型的解决方法是让脚本检查输出是否存在,并在生成新输出之前删除输出(如果存在)。以下是一个涉及创建要素类备份的简单示例:
import os
import arcpy as a
from arcpy import env
fc = "name_of_your_feature_class"
fc_dir = r"path_to_your_feature_class"
out_dir = r"directory_to_copy_feature_class_to"
env.workspace = fc_dir
env.overwriteOutput = True
in_fc = os.path.join(fc_dir, fc)
out_fc = fc + "_backup"
try:
a.FeatureClassToFeatureClass_conversion(in_fc, out_dir, out_fc)
except a.ExecuteError: #In case env.overwriteOutput does not work
print "env.overwriteOutput malfunctioning: attempting work-around..."
try:
if a.Exists(out_fc):
a.Delete_management(out_fc)
a.FeatureClassToFeatureClass_conversion(in_fc, out_dir, out_fc)
print "Work-around complete."
except Exception as e:
print "Work-around failed."
print e
我希望这有帮助!
汤姆
答案 1 :(得分:1)
想要对@ TomAdair的回复发表评论,但希望格式正确。也许更简洁一点就是尝试删除并让该部分失败。
try:
a.Delete_management(out_fc)
except:
pass
a.FeatureClassToFeatureClass_conversion(in_fc, out_dir, out_fc)