使用walk函数在Python中查找文件名的一部分

时间:2016-02-19 19:07:35

标签: python-2.7 os.walk

我有一个文件夹,有5个不同年份的子文件夹(1956年,1976年,1987年,2001年,2005年)。有没有办法使用walk函数从5个子文件夹中的每个子文件夹中搜索文件名的一部分,即Irrigated_Parcels.txt而不是Irrigated_Parcels_1956.txt?我从下面的脚本开始。

import os

def find(name, path):
    for root, dirs, files in os.walk(path):
        if name in files:
            return os.path.join(root, name)

find('*.txt', '/path/to/dir')

1 个答案:

答案 0 :(得分:0)

您可以使用' glob'

以下内容将返回所有符合' * .txt'的文件的路径列表。在每个子文件夹中

import glob
glob.glob('/path/to/dir/*/*.txt')

关于'发现'您已在问题中开始的脚本:请注意,函数只能返回一次,因此脚本将始终只返回匹配的第一个路径。

编辑:对于提出的问题的确切解决方案

glob.glob('/path/to/dir/*/Irrigated_Parcels.txt')

应该这样做。