for file in os.listdir(r'C:\Users\user\Downloads\plant_tomato_leaf_dataset\plantvillage'):
for cl in os.listdir(r'C:\Users\user\Downloads\plant_tomato_leaf_dataset\plantvillage\\'+file):
print(file)
print(cl)
print('******************')
我有一个文件夹“ plantvillage”。在那个文件夹中,我有10个文件夹。我必须访问所有子文件夹并在那些子文件夹项目上执行操作。但是此代码仅显示第一个文件夹中的项目
答案 0 :(得分:2)
您可能对os.walk
而不是os.listdir
感兴趣。 listdir
不是递归的。
一个例子是:
for root, dirs, files in os.walk(r'C:\Users\user\Downloads\plant_tomato_leaf_dataset\plantvillage'):
for file in files:
print(os.path.join(root,file))
这将使内部循环运行的次数与目录一样多,并且还将检查以确保每个文件实际上都是一个文件。如果您出于某种原因要查看目录本身(忽略文件),可以这样做:
for root, dirs, files in os.walk(r'C:\Users\user\Downloads\plant_tomato_leaf_dataset\plantvillage'):
for directory in dirs:
print(os.path.join(root,directory))
但不要尝试混合搭配。迭代文件时,获取当前目录很容易。只是root
。