0
我有這樣的代碼:這段代碼爲什麼會給我一個錯誤?
import re
with open("text2.txt", "r") as f:
content = f.readlines()
numbers = re.findall(r'\b\d{3}\b', content)
with open("text3.txt", "w") as f:
f.write(str(numbers))
運行時,它應該找到所有的三位數,並把它們打印到一個新的文本文件。
當我運行它,我得到這個錯誤:
Traceback (most recent call last):
File "C:\Users\Zach\Desktop\test3.py", line 4, in <module>
numbers = re.findall(r'\b\d{3}\b', content)
File "C:\Panda3D-1.7.2\python\lib\re.py", line 177, in findall
return _compile(pattern, flags).findall(string)
TypeError: expected string or buffer
我在做什麼錯?
'file.readlines()'返回字符串列表,'re.findall()'需要一個字符串。 – bereal
此外,您正在指定一個列表而不是一個字符串。 – devnull
@devnull indentation在這裏不是問題:文件被讀取然後關閉。 – bereal