2
A
回答
5
如果您的正則表達式可以翻譯成shell表達式,例如foo/*.txt
那麼您可以使用glob
。
>>> import glob
>>> glob.glob('./[0-9].*')
['./1.gif', './2.txt']
>>> glob.glob('*.gif')
['1.gif', 'card.gif']
>>> glob.glob('?.gif')
['1.gif']
6
我不知道在什麼STDLIB實現這一點,但它並不難代碼:
import os, os.path
def iter_matching(dirpath, regexp):
"""Generator yielding all files under `dirpath` whose absolute path
matches the regular expression `regexp`.
Usage:
>>> for filename in iter_matching('/', r'/home.*\.bak'):
.... # do something
"""
for dir_, dirnames, filenames in os.walk(dirpath):
for filename in filenames:
abspath = os.path.join(dir_, filename)
if regexp.match(abspath):
yield abspath
或者更一般的:
import os, os.path
def filter_filenames(dirpath, predicate):
"""Usage:
>>> for filename in filter_filenames('/', re.compile(r'/home.*\.bak').match):
.... # do something
"""
for dir_, dirnames, filenames in os.walk(dirpath):
for filename in filenames:
abspath = os.path.join(dir_, filename)
if predicate(abspath):
yield abspath
相關問題
- 1. Os.walk不會與目錄匹配的正則表達式
- 2. 正則表達式正則表達式正則表達式使用正則表達式,但不是與Python
- 3. Java正則表達式組與。* vs正常正則表達式
- 4. 正則表達式(正則表達式)
- 5. 正則表達式(正則表達式)
- 6. 正則表達式(正則表達式)
- 7. C++正則表達式與提升正則表達式
- 8. JMeter的正則表達式與正則表達式測試儀
- 9. 正則表達式與Apache正則表達式
- 10. 正則表達式包括與其他正則表達式
- 11. Ruby正則表達式與Python正則表達式
- 12. 與正則表達式匹配的正則表達式
- 13. Mysql的正則表達式:匹配與正則表達式
- 14. Ruby正則表達式與正則表達式匹配
- 15. Linq與正則表達式
- 16. Protobuf3:與正則表達式
- 17. 正則表達式與組?
- 18. Javascript與正則表達式
- 19. 正則表達式與NUMERICS
- 20. 正則表達式與{^和^}
- 21. 與jquery正則表達式
- 22. 正則表達式與TCL
- 23. 正則表達式與iOS
- 24. 正則表達式與Java
- 25. Antimatch與正則表達式
- 26. grepl與正則表達式
- 27. ReqexKitLite正則表達式與@
- 28. MaskFormatter與正則表達式
- 29. 正則表達式與KMP
- 30. 正則表達式與JavaScript
請張貼一些代碼你試圖使用。請發佈您提出的解決方案,包括您收到的任何錯誤消息。這不是「www.do-my-job-for-me.com」 – 2011-01-09 14:00:38