我是python的新手。我需要使用正则表达式在列表中找到包含这些元音的单词。以下不起作用。任何人都可以看到需要纠正的问题吗?谢谢。
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<property name="defaultLocale" value="en"></property>
<property name="cookieName" value="YOUR_LOCALE_COOKIE_NAME"/>
</bean>
我收到此错误:
import re
file = open('wordlist.txt', 'r')
print re.findall('[aie]', file)
以下是wordlist中的内容,我可以使用它来检索:
Traceback (most recent call last):
File "C:\Python27\MyScripts\script2.py", line 3, in ` <module>
print re.findall('[aie]', file)
File "C:\Python27\lib\re.py", line 181, in findall
return _compile(pattern, flags).findall(string)
TypeError: expected string or buffer
打印出来:
file = open('wordlist.txt', 'r')
print file.read()`
答案 0 :(得分:2)
re.findall()
不接受文件对象,因为错误说您需要传递字符串或缓冲区,以便您可以使用file.read()
将文件作为字符串对象传递给{{ 1}}功能:
findall()
或者,如果您要处理大量文件以拒绝一次阅读文件,或者作为一种更加pythonic的方式,您可以根据需要使用print re.findall('[aie]', file.read())
或re.search
循环访问您的文件线。
re.fildall
答案 1 :(得分:1)
这应该这样做:
import re
file = open('wordlist.txt', 'r')
print re.findall('[aie]', file.read())
错误是由于您在文件对象上尝试实现而不是内容