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

2024-04-27 03:59:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个密码:

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

我做错什么了?你知道吗


Tags: inpyimportretxt密码stringas
3条回答

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

with open("text2.txt", "r") as f:
    content = f.read()

相关问题 更多 >