日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python命令提示符窗口在哪里_详解python命令提示符窗口下如何运行python脚本

發(fā)布時間:2024/9/19 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python命令提示符窗口在哪里_详解python命令提示符窗口下如何运行python脚本 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

以arcgispro的python腳本為例在arcgispro自帶的python窗口下運行python腳本

需求:

將arcgispro的.aprx項目包中gdb的數(shù)據(jù)源路徑更換為sde數(shù)據(jù)源路徑。

示例數(shù)據(jù):testaprx_jb51.rar

演示過程:

方式一:腳本中指定好相關參數(shù)設置

import arcpy

import json

import sys

import os

import argparse

import re

result = ""

jsontext = {'success': {}, 'msg': ''}

def checkSavedAprxDatasource(output_aprx_path, mapName, targetDb):

check_result = True

desc = arcpy.Describe(targetDb)

saved_aprx = arcpy.mp.ArcGISProject(output_aprx_path)

for saved_map in saved_aprx.listMaps():

if saved_map.name == mapName:

for lyr in saved_map.listLayers():

if lyr.isFeatureLayer:

# print(lyr.connectionProperties)

if lyr.connectionProperties['workspace_factory'].upper() == 'SDE'.upper(

) and lyr.connectionProperties['connection_info']['instance'] == desc.connectionProperties.instance:

pass

else:

check_result = False

return check_result

if __name__ == '__main__':

try:

# 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])

# local pc

aprxPath = r'D:\rvt\testaprx\testaprx.aprx'

mapName = 'Map'

sourceDb = r'D:\rvt\testaprx\Data.gdb'

targetDb = r'D:\rvt\testaprx\testsde.sde'

output_aprx_path = r'D:\rvt\testaprx\output\export5.aprx'

aprx = arcpy.mp.ArcGISProject(aprxPath)

for m in aprx.listMaps():

if m.name == mapName:

m.updateConnectionProperties(sourceDb, targetDb)

if os.path.exists(output_aprx_path):

os.remove(output_aprx_path)

aprx.saveACopy(output_aprx_path)

checkResult = checkSavedAprxDatasource(

output_aprx_path, mapName, targetDb)

if checkResult:

jsontext['success'] = True

result = json.dumps(jsontext)

sys.stdout.write(result)

else:

jsontext['success'] = False

jsontext['msg'] = 'Failed to replace data source'

result = json.dumps(jsontext)

sys.stdout.write(result)

except Exception as e:

jsontext['success'] = False

jsontext['msg'] = e.args

result = json.dumps(jsontext)

sys.stdout.write(result)

方式二:使用sys.argv[ ]的形式設置相關參數(shù)

(arcgispro-py3) D:\rvt\testaprx>python test.py D:\rvt\testaprx\testaprx.aprx Map D:\rvt\testaprx\Data.gdb D:\rvt\testaprx\testsde.sde D:\rvt\testaprx\output\export5.aprx

import arcpy

import json

import sys

import os

import argparse

import re

result = ""

jsontext = {'success': {}, 'msg': ''}

def checkSavedAprxDatasource(output_aprx_path, mapName, targetDb):

check_result = True

desc = arcpy.Describe(targetDb)

saved_aprx = arcpy.mp.ArcGISProject(output_aprx_path)

for saved_map in saved_aprx.listMaps():

if saved_map.name == mapName:

for lyr in saved_map.listLayers():

if lyr.isFeatureLayer:

# print(lyr.connectionProperties)

if lyr.connectionProperties['workspace_factory'].upper() == 'SDE'.upper(

) and lyr.connectionProperties['connection_info']['instance'] == desc.connectionProperties.instance:

pass

else:

check_result = False

return check_result

if __name__ == '__main__':

try:

# 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("aprx路徑: "+aprxPath)

print("地圖視圖的名稱: "+mapName)

print("當前的數(shù)據(jù)源路徑: "+sourceDb)

print("目標數(shù)據(jù)源路徑: "+targetDb)

print("aprx另存為路徑: "+output_aprx_path)

# local pc

# aprxPath = r'D:\rvt\testaprx\testaprx.aprx'

# mapName = 'Map'

# sourceDb = r'D:\rvt\testaprx\Data.gdb'

# targetDb = r'D:\rvt\testaprx\testsde.sde'

# output_aprx_path = r'D:\rvt\testaprx\output\export5.aprx'

aprx = arcpy.mp.ArcGISProject(aprxPath)

for m in aprx.listMaps():

if m.name == mapName:

m.updateConnectionProperties(sourceDb, targetDb)

if os.path.exists(output_aprx_path):

os.remove(output_aprx_path)

aprx.saveACopy(output_aprx_path)

checkResult = checkSavedAprxDatasource(

output_aprx_path, mapName, targetDb)

if checkResult:

jsontext['success'] = True

result = json.dumps(jsontext)

sys.stdout.write(result)

else:

jsontext['success'] = False

jsontext['msg'] = 'Failed to replace data source'

result = json.dumps(jsontext)

sys.stdout.write(result)

except Exception as e:

jsontext['success'] = False

jsontext['msg'] = e.args

result = json.dumps(jsontext)

sys.stdout.write(result)

到此這篇關于詳解python命令提示符窗口下如何運行python腳本的文章就介紹到這了,更多相關python命令運行python腳本內(nèi)容請搜索我們以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持我們!

本文標題: 詳解python命令提示符窗口下如何運行python腳本

本文地址: http://www.cppcns.com/jiaoben/python/344400.html

總結(jié)

以上是生活随笔為你收集整理的python命令提示符窗口在哪里_详解python命令提示符窗口下如何运行python脚本的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。