31

多くの種類のファイルと多くのフォルダーを含むフォルダー内の csv ファイルのみをループしようとしています。このフォルダー内のすべての .csv ファイルを一覧表示したいだけです。

これが私が意味することです:

import os, sys

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

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

Pythonにはワイルドカード変数がないことは知っていますが、これを行う方法はありますか?

4

3 に答える 3

52

globモジュールを使用します:http://docs.python.org/2/library/glob.html

import glob
path = "path/to/dir/*.csv"
for fname in glob.glob(path):
    print(fname)
于 2013-01-10T16:23:28.667 に答える
47

Python はglobこれを行うべきものを提供します

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

pathname に一致するパス名の空のリストを返します。これは、パス指定を含む文字列でなければなりません。パス名は絶対 (/usr/src/Python-1.5/Makefile など) または相対 (../../Tools/ / .gif など) にすることができ、シェル スタイルのワイルドカードを含めることができます。壊れたシンボリック リンクが結果に含まれます (シェルと同様)。

于 2013-01-10T16:21:31.807 に答える