检查字符串是否在路径中,然后采取措施



我试图检查一个单词是否在路径内,以及True是否做了什么,但它总是返回False。

例如,我的主路径是C:/Users/aka/Desktop/Imagenes,一些子文件夹和文件是:

C:/Users/aka/Desktop/Imagenes/Show
C:/Users/aka/Desktop/Imagenes/Show/geo
C:/Users/aka/Desktop/Imagenes/Other/geo/ha.jpg
C:/Users/aka/Desktop/Imagenes/Other
C:/Users/aka/Desktop/Imagenes/Other/ramdomfiles
C:/Users/aka/Desktop/Imagenes/Other/ramdomfiles/lo.jpg

使用这个函数,我想做一些事情,但只使用包含字符串Other的路径,例如,但它总是转到else语句,并向File in folder: Show File in folder: Other提供如何使其工作的任何想法?

def generate_tree(path,string):
text=''
for file in os.listdir(path):
rel = path + "/" + file
print(rel)
if  string in rel and os.path.isdir(rel):   
text += ' Main folder: ' +file
text += generate_tree(rel,string)
else:
text += ' File in folder: '+file
return text

您需要在if语句中的rel之后添加.split('/')

def generate_tree(path,string):
text=''
for file in os.listdir(path):
rel = path + "/" + file
print(rel)
if  string in rel.split('/') and os.path.isdir(rel):   
text += ' Main folder: ' +file
text += generate_tree(rel,string)
else:
text += ' File in folder: '+file
return text

我相信你的问题就在这里:

rel = path + "/" + file

我猜你在Windows上,路径分隔符是一个反斜杠。为了获得更好的结果,请尝试以下操作:

rel = os.path.join(path, file)

最新更新