文件名扫描某些名称Python

Filename scanning for certain names Python

本问题已经有最佳答案,请猛点这里访问。

我在一个目录中有很多文件,比如说大约100个,它们的大多数文件名以"mod"开头,我需要将以"mod"开头的所有文件名添加到一个列表中,以便稍后在代码中引用它们。有什么帮助吗?谢谢!


使用glob包。

1
2
3
import glob

filepaths = glob.glob('/path/to/file/Mod*')

一般来说,您可以使用os.listdir。与glob不同,它只返回文件名的最后一部分(没有完整路径)。

1
2
3
4
5
6
7
import os

directory = '/path/to/directory'
filenames = os.listdir(directory )

full_filepaths = [os.path.join(directory, f) for f in filenames]
only_files = [f for f in full_filepaths if os.path.isfile(f)]

您可以使用glob库查找具有给定模式的文件:

1
2
3
4
5
6
7
import glob,os
mylist=[]
os.chdir("/mydir")
for file in glob.glob("Mod*"):
        mylist.append(file)

print mylist

或者你可以使用os.walk

1
2
3
4
for root, dirs, files in os.walk('/mydir'):
    for names in files:
        if names.startswith("Mod"):
             mylist.append(os.path.join(root, names))