python中的目录列表

python中的目录列表,python,directory,Python,Directory,我在目录列表方面遇到了问题。假设我有一个带有某个子目录(命名为a-z,0-9,%,-)的目录。在每个子目录中,我都有一些相关的xml文件。 因此,我必须阅读这些文件的每一行 def listFilesMain(dirpath): for dirname, dirnames, filenames in os.walk(dirpath): for subdirname in dirnames: os.path.join(dirname, subdirn

我在目录列表方面遇到了问题。假设我有一个带有某个子目录(命名为a-z,0-9,%,-)的目录。在每个子目录中,我都有一些相关的xml文件。 因此,我必须阅读这些文件的每一行

def listFilesMain(dirpath):
    for dirname, dirnames, filenames in os.walk(dirpath):
        for subdirname in dirnames:
            os.path.join(dirname, subdirname)
        for filename in filenames:
            fPath = os.path.join(dirname, filename)
            fileListMain.append(fPath)
只有当我试图从子目录运行我的程序时,它才起作用,但如果我试图从主目录运行,则没有结果。这里怎么了?
任何形式的帮助都将不胜感激。谢谢

如果您的子目录是软链接,请确保指定
followlinks=True
作为
os.walk(…)
的参数。从文件中:

    By default, os.walk does not follow symbolic links to subdirectories on
    systems that support them.  In order to get this functionality, set the
    optional argument 'followlinks' to true.

如果子目录是软链接,请确保指定
followlinks=True
作为
os.walk(..)
的参数。从文件中:

    By default, os.walk does not follow symbolic links to subdirectories on
    systems that support them.  In order to get this functionality, set the
    optional argument 'followlinks' to true.
这个怎么样:

def list_files(dirpath):
    files = []
    for dirname, dirnames, filenames in os.walk(dirpath):
        files += [os.path.join(dirname, filename) for filename in filenames]
    return files
您也可以作为生成器执行此操作,因此列表不会完整存储:

def list_files(dirpath):
    for dirname, dirnames, filenames in os.walk(dirpath):
        for filename in filenames:
            yield os.path.join(dirname, filename)
最后,您可能希望强制执行绝对路径:

def list_files(dirpath):
    dirpath = os.path.abspath(dirpath)
    for dirname, dirnames, filenames in os.walk(dirpath):
        for filename in filenames:
            yield os.path.join(dirname, filename)
所有这些都可以通过以下行调用:

for filePath in list_files(dirpath):
    # Check that the file is an XML file.
    # Then handle the file.
这个怎么样:

def list_files(dirpath):
    files = []
    for dirname, dirnames, filenames in os.walk(dirpath):
        files += [os.path.join(dirname, filename) for filename in filenames]
    return files
您也可以作为生成器执行此操作,因此列表不会完整存储:

def list_files(dirpath):
    for dirname, dirnames, filenames in os.walk(dirpath):
        for filename in filenames:
            yield os.path.join(dirname, filename)
最后,您可能希望强制执行绝对路径:

def list_files(dirpath):
    dirpath = os.path.abspath(dirpath)
    for dirname, dirnames, filenames in os.walk(dirpath):
        for filename in filenames:
            yield os.path.join(dirname, filename)
所有这些都可以通过以下行调用:

for filePath in list_files(dirpath):
    # Check that the file is an XML file.
    # Then handle the file.
请修复缩进(不要使用制表符而使用4个空格)请修复缩进(不要使用制表符而使用4个空格)