1

I have lots of files in a directory, lets say around 100, most of their file names begin with "Mod", i need to add all filenames that begin with "Mod" to a list so i can reference them later in my code. Any help? Thanks!

Max.C
  • 23
  • 5
  • i tried using an if "mod" in , but it turns out it was just searching for a list called mod! – Max.C Jan 31 '16 at 00:18

2 Answers2

2

Use the glob package.

import glob

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

More generally, you can use os.listdir. Unlike glob, it only returns the last part of the filename (without the full path).

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)]
Brendan Abel
  • 35,343
  • 14
  • 88
  • 118
0

You can use glob library to find the files with the given pattern:

import glob,os
mylist=[]
os.chdir("/mydir")
for file in glob.glob("Mod*"):
        mylist.append(file)

print mylist

or you can use os.walk

for root, dirs, files in os.walk('/mydir'):
    for names in files:
        if names.startswith("Mod"):
             mylist.append(os.path.join(root, names))
Dalek
  • 4,168
  • 11
  • 48
  • 100