全局和方括号字符(';[]';)
问题描述
/USERS/smcho/Desktop/Branket/[10,20]目录中有"abc.txt",但当我运行这段Python代码时
import glob
import os.path
path1 = "/Users/smcho/Desktop/bracket/[10,20]"
pathName = os.path.join(path1, "*.txt")
print glob.glob(pathName)
它返回一个空列表。
- Python的GLOB无法处理方括号字母或其他字母吗?
- 有没有办法解决这个问题?
解决方案
glob
中的括号用于字符类(例如[a-z]
将匹配小写字母)。您可以将每个方括号放在一个字符类中,以强制匹配它们:
path1 = "/Users/smcho/Desktop/bracket/[[]10,20[]]"
[[]
是只包含字符[
的字符类,[]]
是只包含字符]
的字符类(可以将右括号放在字符类中,方法是将其放在第一个位置)。
此外,由于方括号在字符串中不进行转义,因此您的代码将查找反斜杠和方括号。
相关文章