各ファイルが一致するかどうかを判断するためにディレクトリ全体をトラバースすることなく、globファイル名パターンが一致します。
1、 ワイルドカード
アスタリスク(*)は0個以上の文字に一致します
import glob
for name in glob.glob('dir/*'):print(name)
dir/file.txt
dir/file1.txt
dir/file2.txt
dir/filea.txt
dir/fileb.txt
dir/subdir
サブディレクトリ内のファイルを一覧表示するには、パターンにサブディレクトリ名を含める必要があります。
import glob
# サブディレクトリを持つクエリファイル
print('Named explicitly:')for name in glob.glob('dir/subdir/*'):print('\t', name)
# ワイルドカードを使用する*サブディレクトリ名の代わりに
print('Named with wildcard:')for name in glob.glob('dir/*/*'):print('\t', name)
Named explicitly:
dir/subdir/subfile.txt
Named with wildcard:
dir/subdir/subfile.txt
2、 1文字のワイルドカード
疑問符(?)を使用して、任意の1文字に一致させます。
import glob
for name in glob.glob('dir/file?.txt'):print(name)
dir/file1.txt
dir/file2.txt
dir/filea.txt
dir/fileb.txt
3、 文字範囲
特定の文字に一致させる必要がある場合は、範囲を使用できます
import glob
for name in glob.glob('dir/*[0-9].*'):print(name)
dir/file1.txt
dir/file2.txt
ナレッジポイントの補足:Pythonプログラミング:ファイル名パターンマッチング用のglobモジュール
ファイルの準備
mkdirtmp cd tmp touchfile1.txt touch file2.txt touchfile3.log ls file1.txt file2.txt file3.log
テスト
import glob
# 0個以上の文字ワイルドカードを使用する*
glob.glob("tmp/*.txt")
Out[1]:['file1.txt','file2.txt']
# 1文字のワイルドカードを使用する?
glob.glob("tmp/file?.txt")
Out[2]:['file1.txt','file2.txt']
# 範囲マッチングを使用する
glob.glob("tmp/file[0-9].txt")
Out[3]:['file1.txt','file2.txt']
総括する
これまでのところ、python標準ライブラリのglobの分析に関するこの記事が紹介されています。より関連性の高いpython標準ライブラリglobコンテンツについては、ZaLou.Cnの以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後もZaLouをサポートしていただければ幸いです。 .Cn!
Recommended Posts