我正在寫一個腳本來檢查文件列表中的圖像序列。到目前爲止它運行得很好,但由於某種原因它總是跳過每個新序列的第一個文件。這是到目前爲止我的代碼:python圖像序列循環問題
import os, re
filelist = ["A01B02_0123_A333..ari", "A01B02_0123_A333..ari", "A01B02_0123_A333..ari", "A01B02_0123_A333..ari", "A01B02_0123_A333..ari", "A01B02_0123_A333..ari", "A01B02_0123_A333..ari", "A01B02_0123_A333..ari", "A01B02_0123_A333..ari", "A01B02_0123_A333..ari", "A01B02_0123_A333..ari", "A02B03_0123_A444.0052.ari", "bus_v01.1001.tif", "bus_v01.1002.tif", "bus_v01.1003.tif", "bus_v02.1001.tif", "bus_v02.1002.tif", "bus_v02.1003.tif", "elementA_1001.jpg", "elementA_1002.jpg", "elementA_1003.jpg", "elementB_1001.jpg", "elementB_1002.jpg", "elementB_1003.jpg"]
def digitgroups(file):
padding_expr = re.compile("\d+")
lastfile = ""
sequence_index = 0
for file in filelist:
if file.endswith((".dpx", ".ari", ".jpg", ".tif")):
match = re.findall(padding_expr, file)[::-1]
lastmatch = re.findall(padding_expr, lastfile)[::-1]
if len(match) == len (lastmatch) and file != lastfile:
for i in range (0, len(match)):
digit_difference = int(lastmatch[i])-int(match[i])
if not (digit_difference) == 0:
if digit_difference == -1 or digit_difference == 1 and os.path.splitext(file)[-1] is os.path.splitext(l)[-1]:
print file, "a is part of sequence {0}".format(sequence_index)
elif digit_difference < -1 or digit_difference > 1:
sequence_index += 1
break
lastfile = file
digitgroups(filelist)
嘗試代碼阻止您的代碼,以便我們可以有效地閱讀。 – taesu
'is'比較對象標識,而'=='比較對象值。你想'file!= lastfile'。 –
'list'是一個內建類型,你重寫它。這是不好的做法。 – Ale