Python 为什么这个代码会给我一个错误?

Python 为什么这个代码会给我一个错误?,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我有以下代码: 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

我有以下代码:

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
回溯(最近一次呼叫最后一次):
文件“C:\Users\Zach\Desktop\test3.py”,第4行,在
numbers=re.findall(r'\b\d{3}\b',content)
文件“C:\Panda3D-1.7.2\python\lib\re.py”,第177行,findall格式
返回编译(模式、标志).findall(字符串)
TypeError:应为字符串或缓冲区

我做错了什么?

re.findall
需要一个字符串作为第二个参数,但file对象的方法返回一个列表。也许您打算改用该方法(返回字符串):


re.findall
需要一个字符串作为第二个参数,但file对象的方法返回一个列表。也许您打算改用该方法(返回字符串):


file.readlines()
返回字符串列表,
re.findall()
需要一个字符串。此外,您指定的是一个列表而不是字符串。@devnull缩进在这里不是问题:文件被读取然后关闭。
file.readlines()
返回字符串列表,
re.findall()
需要一个字符串。此外,您指定的是一个列表而不是一个字符串。@devnull缩进在这里不是问题:文件被读取然后关闭。
with open("text2.txt", "r") as f:
    content = f.read()