为什么会
re.search("\.docx", os.listdir(os.getcwd()))
产生以下错误?
TypeError:期望的字符串或缓冲区
答案 0 :(得分:9)
因为os.listdir
返回list
,但re.search
想要一个字符串。
做你正在做的最简单的方法是:
[f for f in os.listdir(os.getcwd()) if f.endswith('.docx')]
甚至:
import glob
glob.glob('*.docx')
答案 1 :(得分:2)
re.search()
期望str
作为第二个参数。请参阅docs了解详情。
import re, os
a = re.search("\.docx", str(os.listdir(os.getcwd())))
if a:
print(True)
else:
print(False)