Python - programa que lea de un fichero una serie de números

 
Vista:

programa que lea de un fichero una serie de números

Publicado por Maria (13 intervenciones) el 19/01/2021 19:53:57
Buenas tardes, necesito resolver este enunciado:
Escriba un programa que lea de un fichero una serie de números, el fichero será de texto y contendrá un número por línea. Para los números leídos eliminará el primer y último elementos y mostrará el resto por pantalla. El nombre del fichero se introducirá por teclado.

No sabría cómo hacer lo de que el nombre del fichero se introduce por teclado,¿alquuien podría ayudarme?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

programa que lea de un fichero una serie de números

Publicado por joel (901 intervenciones) el 20/01/2021 07:56:59
Hola Maria, para solicitar el nombre del archivo, simplemente tienes que utilizar un input()...

1
fichero=input("Introduzca el nombre del fichero: ")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

programa que lea de un fichero una serie de números

Publicado por Maria (13 intervenciones) el 20/01/2021 20:08:50
Buenas noches, y como haria para abrirlo o escribir en el?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

programa que lea de un fichero una serie de números

Publicado por Maria (13 intervenciones) el 21/01/2021 15:04:52
Buenas tardes, lo siento peero no consigo entender el funcinamiento. Tengo que realizar este ejericicio y no sabria como.
Escriba un programa que lea los datos de un fichero de texto y los escriba en otro. Los nombres de los ficheros se introducirán por teclado.

Hago esto pero me da error:
1
2
3
4
5
6
7
fichero_input=input('Introduce el nombre del fichero precedido de / :')
fichero_output=input('Introduce el nombre del fichero donde quieras guardar los datos precedido de /:')
import os
f1=open(os.getcwd() + fichero_input,'r')
f2=open(os.getcwd() + fichero_output, 'w')
f1.close()
f2.close()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

programa que lea de un fichero una serie de números

Publicado por joel (901 intervenciones) el 22/01/2021 14:21:45
Hola Maria, seria algo así:
1
2
3
4
5
6
fichero_input=input('Introduce el nombre del fichero origin :')
fichero_output=input('Introduce el nombre del fichero destino :')
 
with open(fichero_input, 'r') as origen:
    with open(fichero_output, 'w') as destino:
        destino.write(origen.read())
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

programa que lea de un fichero una serie de números

Publicado por Maria (13 intervenciones) el 22/01/2021 15:43:40
Muchas gracias, si puedieras ayudarme tambien con este código.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
fichero_input=input('Introduce el nombre del fichero de lectura precedido de \:')
fichero_output=input('Introduce el nombre del fichero donde vamos a escribir precedido de \:')
import os
try:
    f=open(os.getcwd()+ fichero_input,'r')
    f2=open(os.getcwd()+ fichero_output ,'w')
    for linea in f:
        f2.write(max(f))
        f2.write(min(f))   #ME DA ERROR AQUI
 
    f1.close()
    f2.close()
 
except FileNotFoundError:
    print('El fichero no se ha encontrado')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

programa que lea de un fichero una serie de números

Publicado por joel (901 intervenciones) el 22/01/2021 21:02:12
Que error te da Maria?

max() tiene que recibir números separados por comas, y lo que tu lees del archivo de texto, es un string...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

programa que lea de un fichero una serie de números

Publicado por Maria (13 intervenciones) el 23/01/2021 08:57:26
Me aparece este error:
min() arg is an empty sequence
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

programa que lea de un fichero una serie de números

Publicado por joel (901 intervenciones) el 23/01/2021 09:00:49
tanto min() como max() esperan una secuencia de valores algo así:
1
print(min(1,2,3,4))

Tu le estas pasando "f", que es el objeto open()...

Me puedes indicar exactamente que dice el enunciado del problema?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

programa que lea de un fichero una serie de números

Publicado por Maria (13 intervenciones) el 23/01/2021 09:20:45
Buenos días, ya lo arreglé muchas gracias.
El problema era como bien dijo que le estaba pasando una lista y no un string, al pasar todo el contenido del fichero a string he conseguido sacar el minimo y el maximo y escribirlo en otro fichero.

Muchas gracias!!

Tendría otra duda, tengo que resolver el siguiente enunciado:

Escriba un programa que lea los dni contenidos en un fichero y escriba los nif correspondientes en otro fichero. Puede haber más de un dni por línea. Consideraremos que un número es un dni correcto si es positivo y tiene 8 dígitos. Los nombres de los dos
ficheros se introducirán por teclado.

He conseguido sacar los dnis validos del fichero y calcular la letra que le corresponde pero no sabria como unir ambas cosas, si pueda ayudarme.

Este es mi código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
fichero_a=open('dnis','r');
todo=fichero_a.read();
lista=todo.split();
numeros = [ int(num) for num in lista]
def letra(dni):
    nifs = []
    for numero in dnis:
        if (len(numero)==8 and int(numero)>0):
            nifs.append(numero)
    print(nifs)
    letraposible='TRWAGMYFPDXBNJZSQVHLCKE'
    for numero in nifs:
        print(list(letraposible[int(numero)%23]))
 
letra(nifs)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

programa que lea de un fichero una serie de números

Publicado por joel (901 intervenciones) el 23/01/2021 10:57:13
Hola Maria, es importante que cada nueva duda o tema, crees un hilo nuevo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar