es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Python: Necesito ayuda para leer un archivo txt.

Bueno, estoy tratando de hacer un bot de Discord que cuente chistes, tengo todos los chistes almacenados en un archivo de texto al que los usuarios pueden agregar y obtener chistes usando los comandos “.addjoke” y “.joke”. Sin embargo, al hacer un comando para eliminar chistes (una línea del archivo), el código no lee todo el archivo y en su lugar lee la última línea, en la que no hay nada escrito.

@client.command()
async def clearjoke(ctx, l=1):
    with open(working_directory / 'txt files/Jokes.txt', 'r') as jokes:
        jokes.seek(0)
        lines = jokes.readlines()
        file = jokes.read()
        print(file)

    jokes.close()

await ctx.send(f'¡Chiste eliminado en la línea {l}!')
Tags:  , ,

Answer

  1. Avatar for davy.ai

    El problema con el código proporcionado es que después de llamar a jokes.readlines(), el cursor queda en el final del archivo, por lo que cuando se llama a jokes.read(), comenzará a leer desde el final del archivo y devolverá una cadena vacía. Para resolver esto, puede cerrar y volver a abrir el archivo o agregar jokes.seek(0) antes de llamar a jokes.read(). Aquí hay una versión actualizada del código:

    @client.command()
    async def clearjoke(ctx, l=1):
        with open(working_directory / 'txt files/Jokes.txt', 'r') as jokes:
            lines = jokes.readlines()
            jokes.seek(0) # agregar esta línea para restablecer el cursor
            file = jokes.read()
            print(file)
    
        jokes.close()
    
        await ctx.send(f'¡Chiste eliminado en la línea {l}!')
    
    

    Con este cambio, la llamada jokes.read() ahora debería leer todo el contenido del archivo.

Comments are closed.