CSVファイルの拡張子 *.csvが、全て小文字である限り、質問者さんの元のコードで動作しました。もしかするとWindows環境下で動作させていますでしょうか。Windowsですと、ファイル名は英大文字小文字を区別しませんので、そのせいかもしれません。
例えば、./temp
下に以下のように拡張子CSVについて、大文字小文字が混在しているものがあるとします。
CMD
1C>dir /b temp
2(1).csv
3(11).csv
4(12).CSV
5(123).CsV
6(2).CSV
7(3).CsV
これを、質問者さんのもとのコードで試すと以下のような結果となります。
CMD
1C>python --version
2Python 3.7.4
3
4C>type t1.py
5import glob
6import re
7
8print([p for p in glob.glob('./temp/*.csv', recursive
9if re.search('(\d+).csv', p)])
10
11C>python t1.py
12['./temp\(1).csv', './temp\(11).csv']
拡張子として全てが小文字の *.csv のみがマッチします。ですので、この場合は大文字小文字を区別しないようにすると良いです。
python3
1import glob
2import re
3
4print([p for p in glob.glob('./temp/*.[cC][sS][vV]', recursive=True)
5if re.search('(\d+).csv', p, re.IGNORECASE)])
6
これで実行すると、以下のようになります。
CMD
1C>python t2.py
2['./temp\(1).csv', './temp\(11).csv', './temp\(12).CSV', './temp\(123).CsV',
3 './temp\(2).CSV', './temp\(3).CsV']
追記しました:2019-10-20 12:59
回答へコメントいただいた件、".\temp(1)-(4).csv"のようなファイル名を除外する場合は、ファイル名に先行するパス区切り文字('\'
または'/'
)をパターンとすることで対応できます。※つまり、ファイル名に先行してディレクトリ名があることを前提としますので、改造するような場合は注意してください。
python3
1if re.search('[\/](\d+).csv', p, re.IGNORECASE)])