سؤال

Why would

re.search("\.docx", os.listdir(os.getcwd()))

yield the following error?

TypeError: expected string or buffer

هل كانت مفيدة؟

المحلول

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')

نصائح أخرى

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)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top