/Users/smcho/Desktop/bracket/[10,20] directory has “abc.txt”, but when I run this Python code
import glob
import os.path
path1 = "/Users/smcho/Desktop/bracket/\[10,20\]"
pathName = os.path.join(path1, "*.txt")
print glob.glob(pathName)
It returns an empty list.
- Can’t Python’s glob handle the bracket letters or others?
- Is there any way to solve this problem?
The brackets in
globare used for character classes (e.g.[a-z]will match lowercase letters). You can put each bracket in a character class to force them being matched:[[]is a character class containing only the character[, and[]]is a character class containing only the character](the closing bracket can be placed in a character class by putting it in the first position).Additionally, since brackets aren’t escaped in string literals, your code will look for a backslash as well as a bracket.