0

このスクリプトは、以前に投稿されたものを改良したものですが、それでも「実行に失敗しました (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)
4

1 に答える 1

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 ループの内側と見なすには、もっとインデントする必要があると言っている行があると思います。

スクリプトが 1 つのサブディレクトリでしか機能しない原因が具体的にわかりません。何が起こっているのかについての詳細が必要になります。

編集:recursive_file_gen関数がまったく使用されていないことに気づきませんでした。何が問題を引き起こしているのかわかりません。arcpy に詳しい方が参考になると思います。

于 2012-09-11T18:08:32.313 に答える