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}!')
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 ajokes.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 agregarjokes.seek(0)
antes de llamar ajokes.read()
. Aquí hay una versión actualizada del código:Con este cambio, la llamada
jokes.read()
ahora debería leer todo el contenido del archivo.