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

时间:2019-10-31 11:05:22

标签: python-3.x utf-8

我正在尝试读取此文件(存储在文件“ 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一个10.3.7.0 con 572个字节的datos: Respuesta desde 10.3.7.0:字节= 572 tiempo = 228ms TTL = 253

第10.3.7.0段的评判标准:     Paquetes:enviados = 1,Recibidos = 1,perdidos = 0     (0%perdidos), 每日报》和《每日报》     M.nimo = 228ms,M.ximo = 228ms,Media = 228ms

Haciendo ping一个10.4.2.5 con 572个字节的datos: Respuesta desde 10.4.2.5:字节= 572 tiempo = 11ms TTL = 254

第10.4.2.5段的解释:     Paquetes:enviados = 1,Recibidos = 1,perdidos = 0     (0%perdidos), 每日报》和《每日报》     M.nimo = 11ms,M.ximo = 11ms,媒体= 11ms

Haciendo ping一个10.3.7.0 con 572个字节的datos: Respuesta desde 10.3.7.0:字节= 572 tiempo = 225ms TTL = 253

第10.3.7.0段的评判标准:     Paquetes:enviados = 1,Recibidos = 1,perdidos = 0     (0%perdidos), 每日报》和《每日报》     M.nimo = 225ms,M.ximo = 225ms,Media = 225ms

。 。

1 个答案:

答案 0 :(得分:0)

将以下编码为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