python re.search错误TypeError:期望的字符串或缓冲区

时间:2014-04-06 16:41:30

标签: python expression

为什么会

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

产生以下错误?

  

TypeError:期望的字符串或缓冲区

2 个答案:

答案 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)