Python: Parsing And Grouping Filenames In Directory
I'm pretty new to python, but I have lots of experience with MATLAB & C. What I need to do it parse the filenames of files in a particular directory, separate them into groups
Solution 1:
You can use defaultdict
to make a dictionary that contains lists:
from collections import defaultdict
groups = defaultdict(list)
for filename in os.listdir(directory):
basename, extension = os.path.splitext(filename)
project, subject, session, ftype = basename.split('-x-')
groups[session].append(filename)
Now, groups
contains a mapping between session names and filenames.
Solution 2:
How about using a defaultdict
to group filenames, glob
to find the appropriate files, and fileinput
to read lines from all files with the same key. (untested)
import os
from glob import glob
import fileinput
from collections import defaultdict
filenames = glob('*-x-*')
dd = defaultdict(list)
for filename in filenames:
name, ext = os.path.splitext(filename)
dd[tuple(name.split('-x-')[:3])].append(filename)
for key, fnames in dd.iteritems():
for line in fileinput.FileInput(fnames):
pass# do something with lines from files with same key
Post a Comment for "Python: Parsing And Grouping Filenames In Directory"