我想遍历一个包含多个“级别”子文件夹的目录(如果我使用了错误的术语,请原谅),请参阅以下列表作为示例:
$ tree folder/
folder/
├── lever1_1
│ └── level2_1
│ └── level3_1
│ ├── file1.txt
│ └── file2.txt
└── lever1_2
└── level2_1
└── level3_1
6 directories, 2 files
我想检查目录中是否有.txt文件,如果有,我想修改它们所在的目录(即本例中的level3_1)。这意味着如果我做了类似的事情,它会导致重复
for dirs, files in os.walk("/home/user/folder"):
for file in files:
if file.endswith(".txt"):
# do something to the directory they are in
因为level3_1中有几个.txt文件,但我只想修改一次。
如果我使用
for dirs, files in os.walk("/home/user/folder")
我会收到错误“太多值无法解压(预期为 2)”,我理解这一点,但我无法使用一组固定的目录级别,因为它们在整个用例中可能会有所不同。
有人知道如何有效地做到这一点吗?
亲切的问候
鉴于此文件/目录结构:
$ tree folder/
folder/
├── lever1_1
│ └── level2_1
│ └── level3_1
│ ├── file1.txt
│ └── file2.txt
└── lever1_2
└── level2_1
└── level3_1
6 directories, 2 files
您需要什么:
import os
if __name__ == '__main__':
for root, dirs, files in os.walk("./folder"):
for file in files:
if file.endswith(".txt"):
print(file)