【发布时间】:2021-10-04 11:45:26
【问题描述】:
我有以下代码,其中我有太多的 if else 语句。我需要取图像名称并在“-.”上拆分数据,根据长度需要将位置值存储到一个 touple 中并返回它们。有没有办法在没有 if else 语句的情况下实现相同的功能
import re
def parseimage(img):
strip = img.strip('\n')
length = re.split("[_.]+",strip)
#172.23.60.104_20210909144427527_XX244173_Car_01_unknown_Backward.jpg
if(len(length)==11 ):
country = length[-3]
vehicletype = length[-5]
lane = length[-4]
numberplate = length[-6]
timestamp = length[-7]
camera = f"{length[-9]}-{length[-8]}"
ADRnumber = "unknown"
#17.23.65.104_20210901082840637_XX83229_01_Car_unknown.jpg
elif(len(length)==10 ):
country = length[-2]
vehicletype = length[-3]
lane = length[-4]
numberplate = length[-5]
timestamp = length[-6]
camera = f"{length[-8]}-{length[-7]}"
ADRnumber = "unknown"
#65-104_20210901082840637_XX83229_01_Car_unknown.jpg
elif(len(length)==7 ):
country = length[-2]
vehicletype = length[-3]
camera = length[-4]
lane = length[-5]
numberplate = length[-6]
timestamp = length[-7]
ADRnumber = "unknown"
#/20210922155240420_XX47388_62-101_CHE.jpg
elif(len(length)==5 and ( re.search("_61-101_",img) or re.search("_62-101_",img) ) ):
country = length[-2]
camera = length[-3]
numberplate = length[-4]
timestamp = length[-5]
lane = "unknown"
vehicletype = "unknown"
ADRnumber = "unknown"
elif(len(length)==5):
country = length[-2]
camera = length[-5]
numberplate = length[-3]
timestamp = length[-4]
lane = "unknown"
vehicletype = "unknown"
ADRnumber = "unknown"
#/20210922155240420_XX47388_62-101_.jpg
elif(len(length)==4):
camera = length[-4]
numberplate = length[-2]
timestamp = length[-3]
country = "unknown"
lane = "unknown"
vehicletype = "unknown"
ADRnumber = "unknown"
else:
pass
print(img)
y = (camera,timestamp,numberplate,lane,vehicletype,country,ADRnumber)
return y
【问题讨论】:
-
你的代码真的有效吗?如果是这样,这是codereview 的问题,而不是 Stackoverflow