次のコードを使用して、パスが存在するかどうかを確認したいと思います。チェックしたいパスが、ArcMap 10.0ツールダイアログボックスのパラメーターを介してコードに渡されています。パラメータのデータタイプはフォルダです。このフォルダパスは、以下のコードでsys.argv [2]に渡されます。
{import sys
import os
if os.path.exists("%s"): %(sys.argv[2])
pass
else:
#Do Something Magical}
通常、フォルダーパスを明示的に指定していれば、このスクリプトで問題は発生しません。たとえば、次の3つのいずれもうまく機能し、私が必要とすることを行います。
os.path.exists("C:\\Data\\Hardwar\\Folder"):
os.path.exists(r"C:\Data\Hardwar\Folder"):
os.path.exists("C:/Data/Hardwar/Folder"):
上記のコードで私が見つけているのは、パス((C:\Data\Hardwar\Folder
)がパラメーターからsys.argv [2]に渡されるときに、\の後の最初の文字がエスケープされ、正しくエスケープされていることです。
sys.argv [2]のパスをPythonの許容パス形式にフォーマットするにはどうすればよいですか?
arcpy.GetParameterAsText(1)
代わりに使用してみましたsys.argv[2]
か?
arcpy.exists()
奇妙なファイル名やフォルダ名を使用する場合よりもうまく再生できるコマンドがありますos.path.exists
。