我试图检查一个单词是否在路径内,以及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)