python命令提示符窗口下如何运行python脚本解析?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
方式一:脚本中指定好相关参数设置
进口arcpy 进口json 导入系统 进口操作系统 进口argparse 进口再保险 结果=?“ jsontext={& # 39;成功# 39;:{},& # 39;味精# 39;:& # 39;& # 39;} def checkSavedAprxDatasource (output_aprx_path mapName targetDb): check_result=True desc=arcpy.Describe (targetDb) saved_aprx=arcpy.mp.ArcGISProject (output_aprx_path) 在saved_aprx.listMaps saved_map (): 如果saved_map.name==mapName: 在saved_map.listLayers层(): 如果lyr.isFeatureLayer: #打印(lyr.connectionProperties) 如果lyr.connectionProperties [& # 39; workspace_factory& # 39;] .upper ()==& # 39; sde # 39; .upper ( )和lyr.connectionProperties [& # 39; connection_info& # 39;][& # 39;实例# 39;]==desc.connectionProperties.instance: 通过 其他: check_result=False 返回check_result if __name__==& # 39; __main__ # 39;: 试一试: # linux # aprxPath=str (sys.argv [1]) # mapName=str (sys.argv [2]) # sourceDb=str (sys.argv [3]) # targetDb=str (sys.argv [4]) # output_aprx_path=str (sys.argv [5]) #本地pc aprxPath=" # 39; D: \ rvt \ testaprx \ testaprx.aprx& # 39; mapName=& # 39;地图# 39; sourceDb=" # 39; D: \ rvt \ testaprx \ Data.gdb& # 39; targetDb=" # 39; D: \ rvt \ testaprx \ testsde.sde& # 39; output_aprx_path=" # 39; D: \ rvt \ testaprx \ \输出export5.aprx& # 39; 约计=arcpy.mp.ArcGISProject (aprxPath) 在aprx.listMaps m (): 如果m.name==mapName: m。updateConnectionProperties (sourceDb targetDb) 如果os.path.exists (output_aprx_path): os.remove (output_aprx_path) aprx.saveACopy (output_aprx_path) checkResult=checkSavedAprxDatasource ( output_aprx_path、mapName targetDb) 如果checkResult: jsontext[& # 39;成功# 39;]=True 结果=json.dumps (jsontext) sys.stdout.write(结果) 其他: jsontext[& # 39;成功# 39;]=False jsontext[& # 39;味精# 39;]=& # 39;未能取代数据来源# 39; 结果=json.dumps (jsontext) sys.stdout.write(结果) 除了例外e: jsontext[& # 39;成功# 39;]=False jsontext[& # 39;味精# 39;]=e.args 结果=json.dumps (jsontext) sys.stdout.write(结果)
方式二:使用系统。argv[]的形式设置相关参数
(arcgispro-py3) D: \ rvt \ testaprx> python测试。py D: \ rvt \ testaprx \ testaprx。近似图D: \ rvt \ testaprx \数据。gdb D: \ rvt \ testaprx \ testsde。sde D: \ rvt \ testaprx \ \ export5输出。约计
进口arcpy 进口json 导入系统 进口操作系统 进口argparse 进口再保险 结果=?“ jsontext={& # 39;成功# 39;:{},& # 39;味精# 39;:& # 39;& # 39;} def checkSavedAprxDatasource (output_aprx_path mapName targetDb): check_result=True desc=arcpy.Describe (targetDb) saved_aprx=arcpy.mp.ArcGISProject (output_aprx_path) 在saved_aprx.listMaps saved_map (): 如果saved_map.name==mapName: 在saved_map.listLayers层(): 如果lyr.isFeatureLayer: #打印(lyr.connectionProperties) 如果lyr.connectionProperties [& # 39; workspace_factory& # 39;] .upper ()==& # 39; sde # 39; .upper ( )和lyr.connectionProperties [& # 39; connection_info& # 39;][& # 39;实例# 39;]==desc.connectionProperties.instance: 通过 其他: check_result=False 返回check_result if __name__==& # 39; __main__ # 39;: 试一试: # linux aprxPath=str (sys.argv [1]) mapName=str (sys.argv [2]) sourceDb=str (sys.argv [3]) targetDb=str (sys.argv [4]) output_aprx_path=str (sys.argv [5]) print(“近似路径:“+ aprxPath) print(“地图视图的名称:“+ mapName) print(“当前的数据源路径:“+ sourceDb) print(“目标数据源路径:“+ targetDb) print(“近似另存为路径:“+ output_aprx_path) #本地pc # aprxPath=" # 39; D: \ rvt \ testaprx \ testaprx.aprx& # 39; # mapName=& # 39;地图# 39; # sourceDb=" # 39; D: \ rvt \ testaprx \ Data.gdb& # 39; # targetDb=" # 39; D: \ rvt \ testaprx \ testsde.sde& # 39; # output_aprx_path=" # 39; D: \ rvt \ testaprx \ \输出export5.aprx& # 39; 约计=arcpy.mp.ArcGISProject (aprxPath) 在aprx.listMaps m (): 如果m.name==mapName: m。updateConnectionProperties (sourceDb targetDb) 如果os.path.exists (output_aprx_path): os.remove (output_aprx_path) aprx.saveACopy (output_aprx_path) checkResult=checkSavedAprxDatasource ( output_aprx_path、mapName targetDb) 如果checkResult: jsontext[& # 39;成功# 39;]=True 结果=json.dumps (jsontext) sys.stdout.write(结果) 其他: jsontext[& # 39;成功# 39;]=False jsontext[& # 39;味精# 39;]=& # 39;未能取代数据来源# 39; 结果=json.dumps (jsontext) sys.stdout.write(结果) 除了例外e: jsontext[& # 39;成功# 39;]=False jsontext[& # 39;味精# 39;]=e.args 结果=json.dumps (jsontext) sys.stdout.write(结果)python命令提示符窗口下如何运行python脚本解析