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.

Manipulaciones de archivos de asignación escolar con el operador “-“

Tengo un documento de texto que tiene dos conjuntos de números 4-1 y 9-3. El código necesita leerlos y escribirlos en el mismo documento de texto y debe tener cuidado con las nuevas líneas. Luego, necesita calcularlos e imprimirlos sin palabras de entrada como opción 2. Gracias a todos por la ayuda.

He intentado la opción 1.

f = open("Odin.txt","r")
print(f.read())
f.close()

f = open("Odin.txt","w")

for f in line:
    res = eval(line.strip())
    output.write(line.strip()+"="+str(res)+"\n")
f.close()

f = open("Odin.txt","r")
print(f.readline(),end="")
print(f.readline(),end="")
f.close()

Y he intentado la opción 2.

f = open("Odin.txt","r")
print(f.readline(),end="")
print(f.readline())
f.close()

f = open("Odin.txt","w")
a = 4-1
b = 9-3
f.write(f"4-1 = {a}\n")
f.write(f"9-3 = {b}\n")
f.close()

f = open("Odin.txt","r")
print(f.readline(),end="")
print(f.readline(),end="")
f.close()
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para resolver el problema de leer y escribir dos conjuntos de números en un documento de texto, podemos usar Python para abrir el archivo en modo lectura, leer las líneas que contienen los números, cerrar el archivo, realizar el cálculo necesario y luego volver a abrir el archivo en modo escritura para escribir los resultados de vuelta en el mismo archivo.

    La opción 1 mostrada anteriormente utiliza un bucle para leer cada línea en el archivo, realiza el cálculo usando la función eval y escribe el resultado de vuelta en el archivo usando el modo escritura. Luego, el archivo se abre nuevamente en modo lectura y las líneas se imprimen.

    La opción 2 también abre el archivo en modo lectura para leer las líneas que contienen los números, calcula los resultados y luego vuelve a abrir el archivo en modo escritura para escribir los resultados de vuelta en el archivo. Aquí, podemos escribir directamente los resultados calculados en el archivo sin ningún bucle porque solo tenemos dos conjuntos de números.

    En ambas opciones, debemos tener cuidado con el carácter de nueva línea al leer las líneas. Para imprimir la salida sin ninguna entrada como se solicita, podemos usar el parámetro end de la función print y pasarle una cadena vacía como valor.

    A continuación se muestra una versión modificada de la opción 2 que debería funcionar:

    f = open("Odin.txt", "r")
    num1 = f.readline().strip()
    num2 = f.readline().strip()
    f.close()
    
    # Realizar cálculos
    res1 = eval(num1)
    res2 = eval(num2)
    
    f = open("Odin.txt", "w")
    f.write(f"{num1} = {res1}\n")
    f.write(f"{num2} = {res2}\n")
    f.close()
    
    f = open("Odin.txt", "r")
    print(f.readline().strip(), end=" ")
    print(f.readline().strip(), end="")
    f.close()
    

    Aquí, utilizamos el método strip() para eliminar cualquier carácter de espacio en blanco al principio y al final de las líneas leídas del archivo. Los resultados de los cálculos se almacenan en las variables res1 y res2, respectivamente. Finalmente, abrimos el archivo nuevamente en modo lectura para imprimir los resultados sin ninguna entrada.

Comments are closed.