Python中的os.walk返回一个空列表

我正在尝试使用os.walk从目录中返回 .xlsx 文件列表,但它返回一个空列表。

import os
import pathlib

working_directory = 'N:/files path'

def find_filenames(path, suffix):
# First save all filenames in a list: file_list:
    file_list = []
    # Gets a list of all validation xlsx files in the folder:
    for subdir, dirs, files in os.walk(path):
        for file in files:
            if file.endswith(suffix):
                # save filesnames in file_list: 
                file_list.append(file)
            return file_list
        
print(find_filenames(pathlib.Path(working_directory), '.xlsx')

它正在打印这个:

[]

什么时候应该是这样的:

我错过了什么或做错了什么?谢谢!

回答

应该是:

import os
import pathlib

working_directory = 'N:/files path'

def find_filenames(path, suffix):
# First save all filenames in a list: file_list:
    file_list = []
    # Gets a list of all validation xlsx files in the folder:
    for subdir, dirs, files in os.walk(path):
        for file in files:
            if file.endswith(suffix):
                # save filesnames in file_list: 
                file_list.append(file)
    return file_list

问题是你把它放return错了地方。如果你把代码放在你的问题中,如果第一个文件不是以 结尾.xlsx,它会直接返回[]

  • Ah, corrected OP's indentation

以上是Python中的os.walk返回一个空列表的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>