如何修复TypeError:预期的字符串或类似字节的对象

时间:2019-05-13 20:26:05

标签: python-regex

我正在尝试让我的程序从该文件中获取句子,以便以后可以使用,但出现错误 TypeError:预期的字符串或类似字节的对象

这是我的代码

import os
import re
pass_file = open('writer.odt','r')
read = re.findall(r'[ \w]*', pass_file)
print(read)

1 个答案:

答案 0 :(得分:0)

正则表达式库适用于字符串。在您的示例中,名为pass_file的打开文件是一个对象,您可以一次从一行中获取字符串,也可以从中获取一定大小的块(以字符或字节为单位)。

要从文件中获取所有不间断的单词字符和普通空格序列,您可以将倒数第二行替换为:

read = [re.findall('[ \w]*', line) for line in pass_file]

如果您不希望每个字符之间的所有零长度字符串(不是单词字符或空格),您可以说字符类必须出现一次或多次,而不是当前正则表达式的零次或多次。 :

read = [re.findall('[ \w]+', line) for line in pass_file]

这两个都为您提供了一个列表,其中包含每行出现的列表。如果您希望将其全部包含在一个列表中,则可以替换为以下内容:

read = []
for line in pass_file:
    read.extend(re.findall('[ \w]+', line))