如何以任何变体在 listdir 中搜索字符串
how to search string in listdir in any variation
我想了解如何在不考虑大小写级别或变体的情况下搜索文件名。
似乎 listdir 方法只接受确切的名称。
例如:
文件路径:C:\user\files\Hello文件
这有效
- 搜索字符串 'Hello' 将 return C:\user\files\Hello 文件
这不是
- 搜索字符串 'HELLO' 或任何其他变体(大写)将
return没什么
有解决办法吗?
你可以使用 re
比如,
>>> import os
>>> os.listdir('.') # listing the files for demonstration
['hello', 'foo.zip', 'Hello']
>>> import re, glob
# search for file ending with `hello`,
>>> [f for f in os.listdir('.') if re.search('hello$', f, flags=re.IGNORECASE)]
['hello', 'Hello']
我想了解如何在不考虑大小写级别或变体的情况下搜索文件名。 似乎 listdir 方法只接受确切的名称。
例如:
文件路径:C:\user\files\Hello文件
这有效
- 搜索字符串 'Hello' 将 return C:\user\files\Hello 文件
这不是
- 搜索字符串 'HELLO' 或任何其他变体(大写)将 return没什么
有解决办法吗?
你可以使用 re
比如,
>>> import os
>>> os.listdir('.') # listing the files for demonstration
['hello', 'foo.zip', 'Hello']
>>> import re, glob
# search for file ending with `hello`,
>>> [f for f in os.listdir('.') if re.search('hello$', f, flags=re.IGNORECASE)]
['hello', 'Hello']