无法使用python在windows中递归遍历目录

无法使用python在windows中递归遍历目录,python,windows,os.walk,Python,Windows,Os.walk,我正在尝试使用python在windows中递归地遍历目录 def create_folder_structure(): for root, dirs, files in os.walk(r'C:\Users\patela28\Desktop\jira'): # print(folder_path) print(dirs) create_folder_structure() 上述代码有效。但不是下面这个 def create_folder_struct

我正在尝试使用python在windows中递归地遍历目录

def create_folder_structure():
    for root, dirs, files in os.walk(r'C:\Users\patela28\Desktop\jira'):
        # print(folder_path)
        print(dirs)

create_folder_structure()
上述代码有效。但不是下面这个

def create_folder_structure():
    print(folder_path)
    for root, dirs, files in os.walk(folder_path):
        print(dirs)

create_folder_structure()
我得到以下输出:

C:\Users\patela28\Desktop\unittest>python unittest.py SMC-11883
C:\Users\patela28\Desktop\jira
C:\Users\patela28\Desktop\unittest>
不知道为什么会发生这种情况。

试试这个:

import os

def test():
    path = 'C:/Users/xxx/Downloads'
    for root, dirs, files in os.walk(path):
        return dirs
print(test())

那么,您希望看到的输入和输出是什么?在第二场景中,文件夹路径的值是什么?这是windows机器。路径应该包含反斜杠。问题是我从文本文件中读取文件夹_路径值,并且换行符出现在末尾。一旦我删除换行符,它就可以正常工作。感谢w1n5rx的回复。@AhteshamAkhtar,通常Windows上的路径应该使用反斜杠。但是,如果您知道路径将立即被Windows文件系统API(如
FindFirstFile
)使用,则可以使用正斜杠。无论哪种方式,NT运行库都必须将路径转换为NT内核能够理解的形式,例如
\??\C:\Users\xxx\Downloads
。在这种情况下,
\??\C:
是内核的
\??
虚拟DOS设备目录中的一个对象链接。解析链接后的实际路径类似于
\Device\HarddiskVolume2\Users\xxx\Downloads
@w1n5rx,您将返回
for
循环的第一次迭代。