Skip to content Skip to sidebar Skip to footer

Python Re.search Error TypeError: Expected String Or Buffer

Why would re.search('\.docx', os.listdir(os.getcwd())) yield the following error? TypeError: expected string or buffer

Solution 1:

Because os.listdir returns a list but re.search wants a string.

The easiest way to do what you are doing is:

[f for f in os.listdir(os.getcwd()) if f.endswith('.docx')]

Or even:

import glob
glob.glob('*.docx')

Solution 2:

re.search() expects str as the second argument. Refer docs to know more.

import re, os

a = re.search("\.docx", str(os.listdir(os.getcwd())))
if a:
    print(True)
else:
    print(False)

Post a Comment for "Python Re.search Error TypeError: Expected String Or Buffer"