我定义了一个函数(使用python),当我使用它时,它会返回我的缩进错误



这是我的代码中有缺陷的部分:

def sort_image(path1,path2=None):
import os
import shutil
path_list=[]
if path2 is None:
for i in range(1,len(os.listdir(path1))+1):
pathh_temp = path1 + '/' + '%d_Hazy.bmp'%(i)
path_list.append(pathh_temp)
else:
list_i = os.listdir(path1)
for i in list_i:
if i.find('Imagei') != -1:
shutil.move(path1+'/'+i, path2+'/' + i)
else:
continue
for i in range(1,len(os.listdir(path2))+1):
pathi_temp = path2+ '/' + '%d_Image_.bmp'%(i)
path_list.append(pathi_temp)
return path_list

当我尝试调用函数时,我得到的结果是:

File "build_data.py", line 25
path_list.append(pathh_temp)
^
IndentationError: unindent does not match any outer indentation level

当我在终端中单独运行相同的代码时,它会正确运行。为什么?如何修复此错误?

欢迎使用Stack Overflow!

首先,要帮助阅读你问题的人:总是直接在问题中复制粘贴你的相关代码(这次我已经为你做了;(。

说到你的问题,我认为你在第29行有一个拼写错误:

list_i = os.listdir(path1)

结尾没有冒号":"。

下面的代码对我有效(尽管你没有告诉你的代码应该做什么:我通过阅读它来猜测(:

def sort_image(path1,path2=None):
import os
import shutil
path_list=[]
if path2 is None:
for i in range(1,len(os.listdir(path1))+1):
pathh_temp = path1 + '/' + '%d_Hazy.bmp'%(i)
path_list.append(pathh_temp)
else:
list_i = os.listdir(path1)
for i in list_i:
if i.find('Image') != -1:
shutil.move(path1+'/'+i, path2+'/' + i)
else:
continue
for i in range(1,len(os.listdir(path2))+1):
pathi_temp = path2+ '/' + '%d_Image_.bmp'%(i)
path_list.append(pathi_temp)
return path_list

试试看它是否有效!

最新更新