EOL while scanning string literal問題之謎

運行以下腳本遭遇 EOL while scanning string literal問題

#coding=utf-8
import arcpy
import os
import os.path
inWorkspace = arcpy.GetParameterAsText(0)  #輸入英文城市名文件所在路徑,下含已轉好的DAE_SHP文件夾 D:\
#inWorkspace = "D:\\PythonCode_inWork\\09DAE_SHP_Check\\PROCESS\\DATA\\YANGZHOU"
#arcpy.AddMessage(inWorkspace)

#城市名自動獲取
city = os.path.split(inWorkspace)[-1]

###_H合併Tile
##shps_dir = inWorkspace + "\\DAE_SHP"
##shps = os.listdir(shps_dir)
##shps_H = []
##for i in shps:
##    if '_H_poly.shp' in i:
##        shps_H.append(shps_dir+"\\"+i)
##arcpy.AddMessage('Start merging...')
###merge_name = city + "_MERGE.shp"
###merge_result = os.path.join(inWorkspace,merge_name)
##merge_result = inWorkspace + "\\" + city + "_MERGE.shp"
###print merge_result
##arcpy.Merge_management(shps_H, merge_result)
##arcpy.AddMessage('Merging succeed!')
##
###按PID融合
##arcpy.AddMessage('Start dissolving...')
dissolve_result = inWorkspace + "\\" + city + "_DISSOLVE.shp"
##arcpy.Dissolve_management(merge_result, dissolve_result, ["PID", "FTYPE"])
##arcpy.AddMessage('Dissolving succeed!')

#與Tile面交集取反
Outline = ""
arcpy.AddMessage('Start symdiffing...')
for j in os.listdir(inWorkspace):
    #城市分tile匹配,如Suzhou_19Q3_Submit_Grid_M_01.shp
    if ("Submit_Grid_M" in j) and (".shp" in j) and (j.count(".")==1):
        Outline = j
inFeatures = inWorkspace + "\\" + Outline
updateFeatures = dissolve_result
outFeatureClass = inWorkspace + "\\" + city + "_SymDiff.shp"
arcpy.SymDiff_analysis(inFeatures, updateFeatures, outFeatureClass, "ALL", 0.05)
arcpy.AddMessage('Symdiffing succeed!')

#拆分多部件要素
blue = inWorkspace + "\\" + city + "_BLUE.shp"
arcpy.MultipartToSinglepart_management(outFeatureClass, blue)

#漏藍檢查提示消息
feature_count = int(arcpy.GetCount_management(blue).getOutput(0))
if feature_count == 0:
    arcpy.AddMessage("No Blue!Congratulations!".format(feature_count))
elif feature_count == 1:
    arcpy.AddMessage("There is {0} blue gap to confirm!".format(feature_count))
else:
    arcpy.AddMessage("There are {0} blue gaps to confirm!".format(feature_count))

重點是:

此腳本之前已經解決了EOL while scanning string literal問題

方法:路徑裏最後一個"/"必須寫成“\\”,寫成"/"或r“\”都不行,雖然語法上都正確。

詳見博客https://blog.csdn.net/lzqg1990/article/details/89554069 

與之前正常運行的腳本相比,僅註釋掉了無用的部分代碼,修改瞭如下的if條件。

所以本不應再出現EOL while scanning string literal問題。

後爲分析路徑中斜槓,增加了一行代碼,打印inworkspace路徑字符串:

結果問題就奇蹟般的消失了,未解之謎。

後來呢,我又需要將註釋掉的代碼用回來

結果取消註釋後,又EOL while scanning string literal

有種直覺讓我把這句又註釋掉:

奇蹟又出現了!成功運行!

我大概領悟了

改存1次之後

EOL while scanning string literal會自動消失...

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章