<p>根据上述代码,错误似乎出现在以下代码部分-</p>
<pre><code>11: x = x + 1
12: if prevName == dataset.iloc[x-1, 0] + '.jpg':
13: if x < 10:
14: prevName = 'ISIC_000000' + str(x-1) + '.jpg'
15: if prevName == 'ISIC_0000005.jpg':
16: x = x + 1
17: prevName = 'ISIC_0000006.jpg'
...
36: prevName = 'ISIC_000000' + str(x+1) + '.jpg'
</code></pre>
<p>所以,如果<code>x == 5</code>和<code>prevName == 'ISIC_0000005.jpg'</code></p>
<p>第11行赋值<code>x -> 6</code></p>
<p>第12行和第13行是<code>true</code></p>
<p>第14行赋值<code>prevName -> 'ISIC_0000005.jpg'</code></p>
<p>第15行是<code>true</code></p>
<p>第16行和第17行分配<code>x -> 7</code>和<code>prevName -> 'ISIC_0000006.jpg'</code></p>
<p>然后,<code>if</code>语句外的第36行(最后一行)将赋值<code>prevName -> 'ISIC_0000008.jpg'</code></p>
<p>循环重新启动时,第11行分配<code>x -> 8</code></p>
<p>第12行是<code>false</code>,程序一直持续到<code>x > 1500</code>,不进入<code>if</code>块。你知道吗</p>
<p>要修复代码,我建议使用
<code>str(x).zfill(7)</code>用前导零填充整数,例如,for <code>x = 5</code>返回<code>'0000005'</code>,for <code>x = 95</code>返回<code>'0000095'</code>。这将消除根据<code>x</code>中的位数指定前导零的需要,并简化代码。你知道吗</p>