当我读取 utf-8 中的文件时,.find() 不起作用



我正在尝试读取这个文件(存储在文件"apartadoB.txt"中(

我已经写了那个代码,但它不起作用(什么都没打印出来(

file = open("apartadoB.txt","rb")
for i in file.readlines():
i = str(i.decode('utf-8','ignore'))
if i.find('Respuesta') != -1:
print(i)

file.close()

apartadoB.txt:

��Haciendo ping a 10.3.7.0 con 572字节数据:Respuesta desde10.3.7.0:字节=572 tiempo=228ms TTL=253

Estad�第10.3.7.0段:帕克特斯:enviados=1,recibidos=1,perdidos=0(0%(,Tiempos近似于ida和vuelta en milisegundos:M�尼莫=228ms,M�ximo=228ms,介质=228ms

Haciendo ping a 10.4.2.5 con 572字节数据:Respuesta desde10.4.2.5:字节=572 tiempo=11ms TTL=254

Estad�第10.4.2.5段:帕克特斯:enviados=1,recibidos=1,perdidos=0(0%(,Tiempos近似于ida和vuelta en milisegundos:M�尼莫=11ms,M�ximo=11ms,Media=11ms

Haciendo ping a 10.3.7.0 con 572字节数据:Respuesta desde10.3.7.0:字节=572 tiempo=225ms TTL=253

Estad�第10.3.7.0段:帕克特斯:enviados=1,recibidos=1,perdidos=0(0%(,Tiempos近似于ida和vuelta en milisegundos:M�尼莫=225ms,M�ximo=225ms,介质=225ms

使用以下编码为UTF-8的数据到apartadoB.txt:

Haciendo ping a 10.3.7.0 con 572 bytes de datos: Respuesta desde 10.3.7.0: bytes=572 tiempo=228ms TTL=253
Estadísticas de ping para 10.3.7.0: Paquetes: enviados = 1, recibidos = 1, perdidos = 0 (0% perdidos), Tiempos aproximados de ida y vuelta en milisegundos: Mínimo = 228ms, Máximo = 228ms, Media = 228ms
Haciendo ping a 10.4.2.5 con 572 bytes de datos: Respuesta desde 10.4.2.5: bytes=572 tiempo=11ms TTL=254
Estadísticas de ping para 10.4.2.5: Paquetes: enviados = 1, recibidos = 1, perdidos = 0 (0% perdidos), Tiempos aproximados de ida y vuelta en milisegundos: Mínimo = 11ms, Máximo = 11ms, Media = 11ms
Haciendo ping a 10.3.7.0 con 572 bytes de datos: Respuesta desde 10.3.7.0: bytes=572 tiempo=225ms TTL=253
Estadísticas de ping para 10.3.7.0: Paquetes: enviados = 1, recibidos = 1, perdidos = 0 (0% perdidos), Tiempos aproximados de ida y vuelta en milisegundos: Mínimo = 225ms, Máximo = 225ms, Media = 225ms

建议阅读以下代码:

  • with会自动关闭文件
  • open应处于文本模式(默认(并指定编码
  • 不需要readlines()。直接在文件上迭代
  • 行(i(将已经用UTF-8进行解码
  • end='',因为i行将已经有换行符

with open('apartadoB.txt',encoding='utf8') as file:
for i in file:
if i.find('Respuesta') != -1:
print(i)

输出:

Haciendo ping a 10.3.7.0 con 572 bytes de datos: Respuesta desde 10.3.7.0: bytes=572 tiempo=228ms TTL=253
Haciendo ping a 10.4.2.5 con 572 bytes de datos: Respuesta desde 10.4.2.5: bytes=572 tiempo=11ms TTL=254
Haciendo ping a 10.3.7.0 con 572 bytes de datos: Respuesta desde 10.3.7.0: bytes=572 tiempo=225ms TTL=253

最新更新