关于#python#的问题:代码运行代码SyntaxError: invalid syntax

代码运行显示SyntaxError: invalid syntax。新手不知道哪里出错了有大神能指导一下吗

贴出代码来呀,不然怎么看呢?

说明有语法错误,具体要看你的代码


# -*- coding:utf-8 -*-


import time
s_time=time.time()
import sys
import arcpy
import xlrd
import xlwt
from xlutils.copy import copy

stdin,stdout,stderr = sys.stdin,sys.stdout,sys.stderr
reload(sys)
sys.stdin,sys.stdout,sys.stderr=stdin,stdout,stderr
sys.setdefaultencoding('utf8')

excel=u"鹰潭低压第一次上报.xlsx"
shp=u"鹰潭低压第一次.shp"
jingdu=0.08


out_excel=u"线表.xls"

style =xlwt.XFStyle()
pattern = xlwt.Pattern()
pattern.pattern = xlwt.Pattern.SOLID_PATTERN
pattern.pattern_fore_colour = xlwt.Style.colour_map['red']
style.pattern = pattern




def get_xy_list(excel):
    data = xlrd.open_workbook(excel)
    table = data.sheets()[0]
    nrows = table.nrows
    xy_list=[]
    for i in range(1,nrows):
        xy_list.append((table.cell(i,1).value,table.cell(i,3).value,table.cell(i,4).value,table.cell(i,5).value,table.cell(i,6).value))
    return xy_list
        
    
def export_point(shp,xy_list):
    zc_gj={}
    arcpy.env.workspace=r"E:\信息技术\管线数据"
    xian_list=[]
    with arcpy.da.SearchCursor(shp,["SHAPE@","FID","GJ"]) as cursor:
        for row in cursor:
            for part in row[0]:
                part_list=[]
                for point in part:
                    number=0
                    for i in xy_list:
                        if pow(pow(float(i[2])-point.X,2)+pow(float(i[3])-point.Y,2),0.5)<=jingdu:
                            number+=1
                            pointxx=[i[0],i[1],i[2],i[3],i[4],row[2]]
                    if number>=1:
                        if u"三通" in pointxx[1]:
                            if pointxx[0] not in zc_gj.items():
                                zc_gj[pointxx[0]]=(row[2],get_cgj(point,row[1],row[2],shp))
                            part_list.append((pointxx[0],number,pointxx[1],pointxx[2],pointxx[3],pointxx[4],pointxx[5]))
                        else:
                            if pointxx[0] not in zc_gj.items():
                                zc_gj[pointxx[0]]=(row[2],0)
                            part_list.append((pointxx[0],number,pointxx[1],pointxx[2],pointxx[3],pointxx[4],pointxx[5]))
                    else:
                        part_list.append((u"lost!",number,u"×未找到!×",point.X,point.Y,u"lost!",u"lost!"))

                xian_list.append(part_list)
                print"—————————————————————————————————————————————————————————————"
                for i in range(0,len(part_list)-1):
                    print str(i+1).ljust(5," "),part_list[i][0].ljust(7," "),str(part_list[i][1]).ljust(3," "),part_list[i][2].ljust(8," "),str(part_list[i][3]).ljust(11," "),str(part_list[i][4]).ljust(13," "),str(part_list[i][5]).ljust(6," "),"    ",part_list[i+1][0].ljust(7," "),str(part_list[i+1][1]).ljust(3," "),part_list[i+1][2].ljust(8," "),str(part_list[i+1][3]).ljust(11," "),str(part_list[i+1][4]).ljust(13," "),str(part_list[i+1][5]).ljust(6," ")
    return xian_list,zc_gj
      
def write_xx(xian_list,zc_gj,out_excel,excel):
    oldwb= xlrd.open_workbook(excel,formatting_info=True)
    wb=copy(oldwb)
    #wb=xlwt.Workbook(encoding="utf-8")
    ws=wb.add_sheet(u"线表1",cell_overwrite_ok=True)
    wsgj=wb.add_sheet(u"点管径表",cell_overwrite_ok=True)
    titles=[u"图形线编号",u"线内线段编号",
            u"起始管点编号",u"图形起始点与点表匹配次数",u"起始点类型",u"起始点X",u"起始点Y",u"起始点管顶高程",u"管径",
            u"终止管点编号",u"图形终止点与点表匹配次数",u"终止点类型",u"终止点X",u"终止点Y",u"终止点管顶高程",u"管径",
            u"敷设方式",u"材质",u"压力级制",u"数据来源",u'外径(mm)',u'壁厚(mm)',u"管段防腐材料",
            u"地址",u"项目编码",u"竣工日期",u"采集人",u"测量单位",u"测量日期",u"备注"]
    for i in range(0,len(titles)):
        ws.write(0,i,titles[i])
    rownumber=1
    xian_number=1
    for xian in xian_list:
        part_number=1
        for i in range(0,len(xian)-1):
            ws.write(rownumber,0,xian_number)
            ws.write(rownumber,1,part_number)
            for j in range(0,len(xian[i])):
                if xian[i][1]!=1 or xian[i][j] in["lost!",u"×未找到!×"]:
                    ws.write(rownumber,j+2,xian[i][j],style)
                else:
                    ws.write(rownumber,j+2,xian[i][j])
                    
                if xian[i+1][1]!=1 or xian[i+1][j] in["lost!",u"×未找到!×"]:
                    ws.write(rownumber,j+2+len(xian[i]),xian[i+1][j],style)
                else:
                    ws.write(rownumber,j+2+len(xian[i]),xian[i+1][j])
            rownumber+=1
            part_number+=1
        xian_number+=1

    gjnumber=0
    for i in sorted(zc_gj):
        if zc_gj[i][1]>=0:                                                 
            wsgj.write(gjnumber,0,i)
            wsgj.write(gjnumber,1,zc_gj[i][0])
            wsgj.write(gjnumber,2,zc_gj[i][1])
            gjnumber+=1
        else:
            wsgj.write(gjnumber,0,i,style)
            wsgj.write(gjnumber,1,zc_gj[i][0],style)
            wsgj.write(gjnumber,2,zc_gj[i][1],style)
            gjnumber+=1           
        
    wb.save(out_excel)



#获取三通次管径数据                
def get_cgj(stpoint,FID,gj,shp):
    cgjs=[]
    temp=[]
    with arcpy.da.SearchCursor(shp,["FID","SHAPE@","GJ"]) as cursor:
        for row in cursor:
            if row[0]==FID:
                pass
            else:
                for part in row[1]:
                    for point in part:
                        if point.X==stpoint.X and point.Y==stpoint.Y:
                            cgjs.append(row[2])
    if len(cgjs)==0:
        cgj=-1
    else:
        for i in cgjs:
            if i==gj:
                pass
            else:
                temp.append(i)
        if len(temp)==0:
            cgj=gj
        elif len(temp)==1:
            cgj=temp[0]
        else:
            cgj=-2
    return cgj
                
    
                            
                
    





    
 
if __name__ == "__main__":
    xy_list=get_xy_list(excel)
    #for i in xy_list:
        #print i[0],i[1],i[2]
    xian_list,zc_gj=export_point(shp,xy_list)
    write_xx(xian_list,zc_gj,out_excel,excel)

    



e_time=time.time()
print u"全部工作共耗时:%.2f s!"%(e_time-s_time)
# -*- coding:utf-8 -*-


import time
s_time=time.time()
import sys
import arcpy
import xlrd
import xlwt
from xlutils.copy import copy

stdin,stdout,stderr = sys.stdin,sys.stdout,sys.stderr
reload(sys)
sys.stdin,sys.stdout,sys.stderr=stdin,stdout,stderr
sys.setdefaultencoding('utf8')

excel=u"鹰潭低压第一次上报.xlsx"
shp=u"鹰潭低压第一次.shp"
jingdu=0.08


out_excel=u"线表.xls"

style =xlwt.XFStyle()
pattern = xlwt.Pattern()
pattern.pattern = xlwt.Pattern.SOLID_PATTERN
pattern.pattern_fore_colour = xlwt.Style.colour_map['red']
style.pattern = pattern




def get_xy_list(excel):
    data = xlrd.open_workbook(excel)
    table = data.sheets()[0]
    nrows = table.nrows
    xy_list=[]
    for i in range(1,nrows):
        xy_list.append((table.cell(i,1).value,table.cell(i,3).value,table.cell(i,4).value,table.cell(i,5).value,table.cell(i,6).value))
    return xy_list
        
    
def export_point(shp,xy_list):
    zc_gj={}
    arcpy.env.workspace=r"E:\信息技术\管线数据"
    xian_list=[]
    with arcpy.da.SearchCursor(shp,["SHAPE@","FID","GJ"]) as cursor:
        for row in cursor:
            for part in row[0]:
                part_list=[]
                for point in part:
                    number=0
                    for i in xy_list:
                        if pow(pow(float(i[2])-point.X,2)+pow(float(i[3])-point.Y,2),0.5)<=jingdu:
                            number+=1
                            pointxx=[i[0],i[1],i[2],i[3],i[4],row[2]]
                    if number>=1:
                        if u"三通" in pointxx[1]:
                            if pointxx[0] not in zc_gj.items():
                                zc_gj[pointxx[0]]=(row[2],get_cgj(point,row[1],row[2],shp))
                            part_list.append((pointxx[0],number,pointxx[1],pointxx[2],pointxx[3],pointxx[4],pointxx[5]))
                        else:
                            if pointxx[0] not in zc_gj.items():
                                zc_gj[pointxx[0]]=(row[2],0)
                            part_list.append((pointxx[0],number,pointxx[1],pointxx[2],pointxx[3],pointxx[4],pointxx[5]))
                    else:
                        part_list.append((u"lost!",number,u"×未找到!×",point.X,point.Y,u"lost!",u"lost!"))

                xian_list.append(part_list)
                print"—————————————————————————————————————————————————————————————"
                for i in range(0,len(part_list)-1):
                    print str(i+1).ljust(5," "),part_list[i][0].ljust(7," "),str(part_list[i][1]).ljust(3," "),part_list[i][2].ljust(8," "),str(part_list[i][3]).ljust(11," "),str(part_list[i][4]).ljust(13," "),str(part_list[i][5]).ljust(6," "),"    ",part_list[i+1][0].ljust(7," "),str(part_list[i+1][1]).ljust(3," "),part_list[i+1][2].ljust(8," "),str(part_list[i+1][3]).ljust(11," "),str(part_list[i+1][4]).ljust(13," "),str(part_list[i+1][5]).ljust(6," ")
    return xian_list,zc_gj
      
def write_xx(xian_list,zc_gj,out_excel,excel):
    oldwb= xlrd.open_workbook(excel,formatting_info=True)
    wb=copy(oldwb)
    #wb=xlwt.Workbook(encoding="utf-8")
    ws=wb.add_sheet(u"线表1",cell_overwrite_ok=True)
    wsgj=wb.add_sheet(u"点管径表",cell_overwrite_ok=True)
    titles=[u"图形线编号",u"线内线段编号",
            u"起始管点编号",u"图形起始点与点表匹配次数",u"起始点类型",u"起始点X",u"起始点Y",u"起始点管顶高程",u"管径",
            u"终止管点编号",u"图形终止点与点表匹配次数",u"终止点类型",u"终止点X",u"终止点Y",u"终止点管顶高程",u"管径",
            u"敷设方式",u"材质",u"压力级制",u"数据来源",u'外径(mm)',u'壁厚(mm)',u"管段防腐材料",
            u"地址",u"项目编码",u"竣工日期",u"采集人",u"测量单位",u"测量日期",u"备注"]
    for i in range(0,len(titles)):
        ws.write(0,i,titles[i])
    rownumber=1
    xian_number=1
    for xian in xian_list:
        part_number=1
        for i in range(0,len(xian)-1):
            ws.write(rownumber,0,xian_number)
            ws.write(rownumber,1,part_number)
            for j in range(0,len(xian[i])):
                if xian[i][1]!=1 or xian[i][j] in["lost!",u"×未找到!×"]:
                    ws.write(rownumber,j+2,xian[i][j],style)
                else:
                    ws.write(rownumber,j+2,xian[i][j])
                    
                if xian[i+1][1]!=1 or xian[i+1][j] in["lost!",u"×未找到!×"]:
                    ws.write(rownumber,j+2+len(xian[i]),xian[i+1][j],style)
                else:
                    ws.write(rownumber,j+2+len(xian[i]),xian[i+1][j])
            rownumber+=1
            part_number+=1
        xian_number+=1

    gjnumber=0
    for i in sorted(zc_gj):
        if zc_gj[i][1]>=0:                                                 
            wsgj.write(gjnumber,0,i)
            wsgj.write(gjnumber,1,zc_gj[i][0])
            wsgj.write(gjnumber,2,zc_gj[i][1])
            gjnumber+=1
        else:
            wsgj.write(gjnumber,0,i,style)
            wsgj.write(gjnumber,1,zc_gj[i][0],style)
            wsgj.write(gjnumber,2,zc_gj[i][1],style)
            gjnumber+=1           
        
    wb.save(out_excel)



#获取三通次管径数据                
def get_cgj(stpoint,FID,gj,shp):
    cgjs=[]
    temp=[]
    with arcpy.da.SearchCursor(shp,["FID","SHAPE@","GJ"]) as cursor:
        for row in cursor:
            if row[0]==FID:
                pass
            else:
                for part in row[1]:
                    for point in part:
                        if point.X==stpoint.X and point.Y==stpoint.Y:
                            cgjs.append(row[2])
    if len(cgjs)==0:
        cgj=-1
    else:
        for i in cgjs:
            if i==gj:
                pass
            else:
                temp.append(i)
        if len(temp)==0:
            cgj=gj
        elif len(temp)==1:
            cgj=temp[0]
        else:
            cgj=-2
    return cgj
                
    
                            
                
    





    
 
if __name__ == "__main__":
    xy_list=get_xy_list(excel)
    #for i in xy_list:
        #print i[0],i[1],i[2]
    xian_list,zc_gj=export_point(shp,xy_list)
    write_xx(xian_list,zc_gj,out_excel,excel)

    



e_time=time.time()
print u"全部工作共耗时:%.2f s!"%(e_time-s_time)
# -*- coding:utf-8 -*-


import time
s_time=time.time()
import sys
import arcpy
import xlrd
import xlwt
from xlutils.copy import copy

stdin,stdout,stderr = sys.stdin,sys.stdout,sys.stderr
reload(sys)
sys.stdin,sys.stdout,sys.stderr=stdin,stdout,stderr
sys.setdefaultencoding('utf8')

excel=u"鹰潭低压第一次上报.xlsx"
shp=u"鹰潭低压第一次.shp"
jingdu=0.08


out_excel=u"线表.xls"

style =xlwt.XFStyle()
pattern = xlwt.Pattern()
pattern.pattern = xlwt.Pattern.SOLID_PATTERN
pattern.pattern_fore_colour = xlwt.Style.colour_map['red']
style.pattern = pattern




def get_xy_list(excel):
    data = xlrd.open_workbook(excel)
    table = data.sheets()[0]
    nrows = table.nrows
    xy_list=[]
    for i in range(1,nrows):
        xy_list.append((table.cell(i,1).value,table.cell(i,3).value,table.cell(i,4).value,table.cell(i,5).value,table.cell(i,6).value))
    return xy_list
        
    
def export_point(shp,xy_list):
    zc_gj={}
    arcpy.env.workspace=r"E:\信息技术\管线数据"
    xian_list=[]
    with arcpy.da.SearchCursor(shp,["SHAPE@","FID","GJ"]) as cursor:
        for row in cursor:
            for part in row[0]:
                part_list=[]
                for point in part:
                    number=0
                    for i in xy_list:
                        if pow(pow(float(i[2])-point.X,2)+pow(float(i[3])-point.Y,2),0.5)<=jingdu:
                            number+=1
                            pointxx=[i[0],i[1],i[2],i[3],i[4],row[2]]
                    if number>=1:
                        if u"三通" in pointxx[1]:
                            if pointxx[0] not in zc_gj.items():
                                zc_gj[pointxx[0]]=(row[2],get_cgj(point,row[1],row[2],shp))
                            part_list.append((pointxx[0],number,pointxx[1],pointxx[2],pointxx[3],pointxx[4],pointxx[5]))
                        else:
                            if pointxx[0] not in zc_gj.items():
                                zc_gj[pointxx[0]]=(row[2],0)
                            part_list.append((pointxx[0],number,pointxx[1],pointxx[2],pointxx[3],pointxx[4],pointxx[5]))
                    else:
                        part_list.append((u"lost!",number,u"×未找到!×",point.X,point.Y,u"lost!",u"lost!"))

                xian_list.append(part_list)
                print"—————————————————————————————————————————————————————————————"
                for i in range(0,len(part_list)-1):
                    print str(i+1).ljust(5," "),part_list[i][0].ljust(7," "),str(part_list[i][1]).ljust(3," "),part_list[i][2].ljust(8," "),str(part_list[i][3]).ljust(11," "),str(part_list[i][4]).ljust(13," "),str(part_list[i][5]).ljust(6," "),"    ",part_list[i+1][0].ljust(7," "),str(part_list[i+1][1]).ljust(3," "),part_list[i+1][2].ljust(8," "),str(part_list[i+1][3]).ljust(11," "),str(part_list[i+1][4]).ljust(13," "),str(part_list[i+1][5]).ljust(6," ")
    return xian_list,zc_gj
      
def write_xx(xian_list,zc_gj,out_excel,excel):
    oldwb= xlrd.open_workbook(excel,formatting_info=True)
    wb=copy(oldwb)
    #wb=xlwt.Workbook(encoding="utf-8")
    ws=wb.add_sheet(u"线表1",cell_overwrite_ok=True)
    wsgj=wb.add_sheet(u"点管径表",cell_overwrite_ok=True)
    titles=[u"图形线编号",u"线内线段编号",
            u"起始管点编号",u"图形起始点与点表匹配次数",u"起始点类型",u"起始点X",u"起始点Y",u"起始点管顶高程",u"管径",
            u"终止管点编号",u"图形终止点与点表匹配次数",u"终止点类型",u"终止点X",u"终止点Y",u"终止点管顶高程",u"管径",
            u"敷设方式",u"材质",u"压力级制",u"数据来源",u'外径(mm)',u'壁厚(mm)',u"管段防腐材料",
            u"地址",u"项目编码",u"竣工日期",u"采集人",u"测量单位",u"测量日期",u"备注"]
    for i in range(0,len(titles)):
        ws.write(0,i,titles[i])
    rownumber=1
    xian_number=1
    for xian in xian_list:
        part_number=1
        for i in range(0,len(xian)-1):
            ws.write(rownumber,0,xian_number)
            ws.write(rownumber,1,part_number)
            for j in range(0,len(xian[i])):
                if xian[i][1]!=1 or xian[i][j] in["lost!",u"×未找到!×"]:
                    ws.write(rownumber,j+2,xian[i][j],style)
                else:
                    ws.write(rownumber,j+2,xian[i][j])
                    
                if xian[i+1][1]!=1 or xian[i+1][j] in["lost!",u"×未找到!×"]:
                    ws.write(rownumber,j+2+len(xian[i]),xian[i+1][j],style)
                else:
                    ws.write(rownumber,j+2+len(xian[i]),xian[i+1][j])
            rownumber+=1
            part_number+=1
        xian_number+=1

    gjnumber=0
    for i in sorted(zc_gj):
        if zc_gj[i][1]>=0:                                                 
            wsgj.write(gjnumber,0,i)
            wsgj.write(gjnumber,1,zc_gj[i][0])
            wsgj.write(gjnumber,2,zc_gj[i][1])
            gjnumber+=1
        else:
            wsgj.write(gjnumber,0,i,style)
            wsgj.write(gjnumber,1,zc_gj[i][0],style)
            wsgj.write(gjnumber,2,zc_gj[i][1],style)
            gjnumber+=1           
        
    wb.save(out_excel)



#获取三通次管径数据                
def get_cgj(stpoint,FID,gj,shp):
    cgjs=[]
    temp=[]
    with arcpy.da.SearchCursor(shp,["FID","SHAPE@","GJ"]) as cursor:
        for row in cursor:
            if row[0]==FID:
                pass
            else:
                for part in row[1]:
                    for point in part:
                        if point.X==stpoint.X and point.Y==stpoint.Y:
                            cgjs.append(row[2])
    if len(cgjs)==0:
        cgj=-1
    else:
        for i in cgjs:
            if i==gj:
                pass
            else:
                temp.append(i)
        if len(temp)==0:
            cgj=gj
        elif len(temp)==1:
            cgj=temp[0]
        else:
            cgj=-2
    return cgj
                
    
                            
                
    





    
 
if __name__ == "__main__":
    xy_list=get_xy_list(excel)
    #for i in xy_list:
        #print i[0],i[1],i[2]
    xian_list,zc_gj=export_point(shp,xy_list)
    write_xx(xian_list,zc_gj,out_excel,excel)

    



e_time=time.time()
print u"全部工作共耗时:%.2f s!"%(e_time-s_time)