此脚本是对之前发布的脚本的改进,但确实如此 仍然给我一个错误“执行失败(CADToGeodatabase)” 它能够遍历目录和子目录列表 dwg文件,创建地理数据库但无法填充它 由于错误导致的要素数据集和要素类!请帮忙!
import os, os.path, arcpy
from arcpy import env
env.workspace = "J:/2010"
# Set workspace and variables
gdb = r"C:\data\2010.gdb"
arcpy.env.workspace = gdb
# Create a FileGDB for the fds
arcpy.CreateFileGDB_management("C:/data", "2010.gdb")
reference_scale = "1500"
for root, dirs, files in os.walk("J:/2010/"):
for file in files:
if file.endswith('.dwg'):
print "current file is: " + file
outDS = arcpy.ValidateTableName(os.path.splitext("d" +
os.path.basename(file))[0])
arcpy.CADToGeodatabase_conversion(file, gdb, outDS, reference_scale)
答案 0 :(得分:0)
def recursive_file_gen(r"J:\2010"):
这句话对我来说很奇怪。我认为你不能在那里放一个文字字符串。我很惊讶这一切都在发生。也许你的意思是做def recursive_file_gen(directory=r"J:\2010"):
或def recursive_file_gen():
。
另外,我认为yield os.path.join(root, file)
行需要缩进,以便在内部for循环中考虑。
我没有具体看到导致脚本仅在一个子目录中工作的原因。我将需要更多有关正在发生的事情的细节。
编辑:我没有注意到recursive_file_gen
功能根本没有被使用。我不知道造成这个问题的原因。我认为对arcpy更熟悉的人会对你更有帮助。