【发布时间】:2016-01-23 06:52:29
【问题描述】:
我知道有很多与此相关的问题,但我似乎找不到可以帮助我解决问题的答案。
我正在使用 os.walk() 遍历我的主文件夹中的子文件夹,其中包含文件夹和文件。
Main Folder
Pass Folder
files.txt
Fail Folder
files.txt
file.txt
file2.txt
所以我使用此代码根据子文件夹名称创建一个新的文本文件。但是,这会返回文件夹/.txt,这意味着 dirs 正在返回 '/',而文件正在返回 ['file.txt', 'file2.txt']。
for root, dirs, files in os.walk(path):
for dirs in root:
new_txt = 'folder%s.txt' % (dirs)
如何修复它,以便 dirs 返回 ['Main Folder/Pass Folder', 'Main Folder/Fail Folder'] 并且 files 返回每个文件夹中的文件?
【问题讨论】:
-
root是一个字符串,所以for dirs in root将一次遍历一个字符。这就是你想要的吗? -
哦,我认为我的语法是错误的,因为我认为使用 dirs 会引用 os.walk() 中的 dirs。我试图让它遍历根目录中的子文件夹。
-
那么你将使用
for d in dirs,而不是遍历根字符串本身。如果你只关心文件而不关心目录,你只需要遍历文件:for f in files,并获取每个文件的完整路径使用os.path.join(root, f)