Sam Creamer Sam Creamer - 1 month ago 6
Python Question

Loop through all CSV files in a folder

I'm trying to loop through only the csv files in a folder that contains many kinds of files and many folders, I just want it to list all of the .csv files in this folder.

Here's what I mean:

import os, sys

path = "path/to/dir"
dirs = os.listdir(path)

for file in dirs:
if file == '*.csv':
print file


I know there is no wildcard variable in python, but is there a way of doing this?

Answer

Python provides glob which should do this

>>> import glob
>>> glob.glob('/path/to/dir/*.csv')

Return a possibly-empty list of path names that match pathname, which must be a string containing a path specification. pathname can be either absolute (like /usr/src/Python-1.5/Makefile) or relative (like ../../Tools//.gif), and can contain shell-style wildcards. Broken symlinks are included in the results (as in the shell).