python - 发现 TypeError : sequence item 1: expected a bytes-like object, str

标签 python regex python-3.x

我正在尝试使用 Python 3 中的正则表达式从文本文件中的 wiki 标题转储中提取英文标题。wiki 转储还包含其他语言的标题和一些符号。下面是我的代码:

with open('/Users/some/directory/title.txt', 'rb')as f:
    text=f.read()
    letters_only = re.sub(b"[^a-zA-Z]", " ", text)
    words = letters_only.lower().split() 
print(words)

但是我得到一个错误:

TypeError: sequence item 1: expected a bytes-like object, str found 

行:letters_only = re.sub(b[^a-zA-Z]", "", text)

但是,我正在使用 b'' 将输出作为字节类型,下面是文本文件的示例:

Destroy-Oh-Boy!!
!!Que_Corra_La_Voz!!
!!_(chess)
!!_(disambiguation)
!'O!Kung
!'O!Kung_language
!'O-!khung_language
!337$P34K
!=
!?
!?!
!?Revolution!?
!?_(chess)
!A_Luchar!
!Action_Pact!
!Action_pact!
!Adios_Amigos!
!Alabadle!
!Alarma!
!Alarma!_(album)
!Alarma!_(disambiguation)
!Alarma!_(magazine)
!Alarma!_Records
!Alarma!_magazine
!Alfaro_Vive,_Carajo!
!All-Time_Quarterback!
!All-Time_Quarterback!_(EP)
!All-Time_Quarterback!_(album)
!Alla_tu!
!Amigos!
!Amigos!_(Arrested_Development_episode)
!Arriba!_La_Pachanga
!Ask_a_Mexican!
!Atame!
!Ay,_Carmela!_(film)
!Ay,_caramba!
!BANG!
!Bang!
!Bang!_TV
!Basta_Ya!
!Bastardos!
!Bastardos!_(album)
!Bastardos_en_Vivo!
!Bienvenido,_Mr._Marshall!
!Ciauetistico!
!Ciautistico!
!DOCTYPE
!Dame!_!Dame!_!Dame!
!Decapitacion!
!Dos!
!Explora!_Science_Center_and_Children's_Museum
!F
!Forward,_Russia!
!Forward_Russia!
!Ga!ne_language
!Ga!nge_language
!Gã!ne
!Gã!ne_language
!Gã!nge_language
!HERO
!Happy_Birthday_Guadaloupe!
!Happy_Birthday_Guadalupe!
!Hello_Friends

我在网上搜索过,但没有成功。任何帮助将不胜感激。

最佳答案

问题出在您提供的 repl 参数上,它不是 bytes 对象:

letters_only = re.sub(b"[^a-zA-Z]", " ", b'Hello2World')
# TypeError: sequence item 1: expected a bytes-like object, str found

相反,提供 repl 作为字节实例 b"":

letters_only = re.sub(b"[^a-zA-Z]", b" ", b'Hello2World')
print(letters_only) 
b'Hello World'

注意:如果你不是在寻找byte,不要用b作为字面量前缀,也不要用rb打开文件> 序列。

关于python - 发现 TypeError : sequence item 1: expected a bytes-like object, str,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39818425/

相关文章:

python - 将列表列表解压到 pandas 数据帧中的性能

python - 如何将工作表复制到另一个工作表(而不是作为附加工作表)

Python re.match 不匹配相同的正则表达式

javascript - 如何动态添加javascript正则表达式转义字符

html - 使用正则表达式查找嵌套的 XML 标记

Python3 : create selective copy of dictionary as a new dictionary

python - 如何在基于 Alpine 镜像的 Docker 化应用程序中启用 WebSocket 连接(WebSocketAddressException : [Errno -3])?

python - 如何在 py.test 中加载自定义插件

java - 设置变量时Python内联if

windows - 为什么对象的 id 会根据 python shell 中的行而改变