elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Ayuda con Ficheros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con Ficheros  (Leído 3,209 veces)
Panic0

Desconectado Desconectado

Mensajes: 218



Ver Perfil
Ayuda con Ficheros
« en: 19 Enero 2021, 16:41 pm »

Hola a todos,saben como puedo ver la Información de un fichero? me mandaron a hacer un menú en el que se tenga que agregar alumnos (nombre,apellido,numero materia y nota) y esta se guarde en un archivo. Esa parte ya la hice,pero lo que no me da resultados es lo de poder ver la Información.
La idea es que una de las opciones del menú sean consultar por grupo,consultar numero y agregar números.Si me pueden dar una mano seria excelente !

Lo que tengo de momento
Código:
archivo = open("Estudiantes.txt","a")

def Agregar_alumnos(archivo):
   
    nombre_apellido = []
    numero = []
    materia = []
    nota = []
       
    nombre_apellido.append(input("Ingrese el nombre y el apellido: "))
    numero.append(int(input("Ingrese el numero del estudiante: ")))
    materia.append(input("Ingrese la materia: "))
    nota.append(input("Ingrese la nota: "))

    nombre_apellido = str(nombre_apellido)
    numero = str(numero)
    materia = str(materia)
    nota = str(nota)

    archivo.write("\n")
    archivo.write(nombre_apellido)
    archivo.write(numero)
    archivo.write(materia)
    archivo.write(nota)

    nombre_apellido = list(nombre_apellido)
    numero = list(numero)
    materia = list(materia)
    nota = list(nota)

   
    archivo.close()

if __name__ == "__main__":
    Agregar_alumnos(archivo)



En línea

Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.397


Turn off the red ligth


Ver Perfil WWW
Re: Ayuda con Ficheros
« Respuesta #1 en: 19 Enero 2021, 17:25 pm »

Código
  1. archivo = open("Estudiantes.txt", "r")
  2. print(archivo.read())

Usa geshi para colorear el código:
[code=python]archivo = open("Estudiantes.txt", "r")
print(archivo.read())[/code]


En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

Panic0

Desconectado Desconectado

Mensajes: 218



Ver Perfil
Re: Ayuda con Ficheros
« Respuesta #2 en: 19 Enero 2021, 17:59 pm »

Código
  1. archivo = open("Estudiantes.txt", "r")
  2. print(archivo.read())

Usa geshi para colorear el código:
[code=python]archivo = open("Estudiantes.txt", "r")
print(archivo.read())[/code]


Hola,ya probé hacer eso y no me funcionó jejej
De todas formas muchas gracias
En línea

Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Ayuda con Ficheros
« Respuesta #3 en: 20 Enero 2021, 00:39 am »

una forma de leer cada línea sería:
Código
  1. def leer_archivo():
  2.    with open('estudiantes.txt') as archivo:
  3.        for linea in archivo:
  4.            print(linea)

ahora, en lo pèrsonal creo que tenés muchas cosas de más y tampoco entiendo porque guaradar los datos como listas.
En línea

Danielㅤ


Desconectado Desconectado

Mensajes: 1.675


🔵🔵🔵🔵🔵🔵🔵


Ver Perfil
Re: Ayuda con Ficheros
« Respuesta #4 en: 20 Enero 2021, 01:50 am »

Hola, podes usar diccionarios para lo que deseas hacer, con uno solo sería suficiente.

Aquí te dejo un ejemplo de cómo usar un diccionario:

Código
  1.    datos = {}
  2.    nombre_apellido = input("Ingrese el nombre y el apellido: ")
  3.    numero = int(input("Ingrese el numero del estudiante: "))
  4.    materia = input("Ingrese la materia: ")
  5.    nota = input("Ingrese la nota: ")
  6.    datos["nombre_apellido"] = nombre_apellido
  7.    datos["numero"] = numero
  8.    datos["materia"] = materia
  9.    datos["nota"] = nota
  10.  


Saludos
« Última modificación: 20 Enero 2021, 04:03 am por [D]aniel » En línea

Panic0

Desconectado Desconectado

Mensajes: 218



Ver Perfil
Re: Ayuda con Ficheros
« Respuesta #5 en: 20 Enero 2021, 05:06 am »

una forma de leer cada línea sería:
Código
  1. def leer_archivo():
  2.    with open('estudiantes.txt') as archivo:
  3.        for linea in archivo:
  4.            print(linea)

ahora, en lo pèrsonal creo que tenés muchas cosas de más y tampoco entiendo porque guaradar los datos como listas.

Bien,lo voy a probar muchas gracias
En cuanto a esto
Citar
ahora, en lo pèrsonal creo que tenés muchas cosas de más y tampoco entiendo porque guaradar los datos como listas.

Me podrías decir que es lo que esta de más?
Y con lo de las listas,mi idea era ponerlas en un diccionario  ;D
En línea

Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
Panic0

Desconectado Desconectado

Mensajes: 218



Ver Perfil
Re: Ayuda con Ficheros
« Respuesta #6 en: 20 Enero 2021, 05:07 am »

Hola, podes usar diccionarios para lo que deseas hacer, con uno solo sería suficiente.

Aquí te dejo un ejemplo de cómo usar un diccionario:

Código
  1.    datos = {}
  2.    nombre_apellido = input("Ingrese el nombre y el apellido: ")
  3.    numero = int(input("Ingrese el numero del estudiante: "))
  4.    materia = input("Ingrese la materia: ")
  5.    nota = input("Ingrese la nota: ")
  6.    datos["nombre_apellido"] = nombre_apellido
  7.    datos["numero"] = numero
  8.    datos["materia"] = materia
  9.    datos["nota"] = nota
  10.  


Saludos

Muchísimas gracias amigo  ;-)
En línea

Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Ayuda con Ficheros
« Respuesta #7 en: 20 Enero 2021, 05:37 am »

vaya, varias cosas:
Citar
datos = {}
    nombre_apellido = input("Ingrese el nombre y el apellido: ")
    numero = int(input("Ingrese el numero del estudiante: "))
    materia = input("Ingrese la materia: ")
    nota = input("Ingrese la nota: ")
    datos["nombre_apellido"] = nombre_apellido
    datos["numero"] = numero
    datos["materia"] = materia
    datos["nota"] = nota

no tiene sentido usar los datos de esa forma, está generando claves por cada item, lo cual generará problemas si los valores se repiten en otros alumnos. Lo ideal es generar una clave única, que puede ser el número de alumno y como valores los datos:

Código
  1. diccionario={}
  2. def cargar_alumno():
  3.    numero = len(diccionario) + 1 #se genera autoincremental, por lo tanto no se repetirá
  4.    nombre_apellido = input("Ingrese el nombre y el apellido: ")
  5.    materia = input("Ingrese la materia: ")
  6.    nota = input("Ingrese la nota: ")
  7.    diccionario[numero]=[nombre_apellido,materia,nota] #al estar todos en una lista después es muy simple ver los datos completos de cada alumno, aunque haya datos iguales, los números, osea las claves son únicas
  8.  
  9. cargar_alumno()
  10.  

por otro lado, al diccionario como tal no lo podés guardar en un archivo, lo cual genera que cada vez que inicies el script el diccionario estará vacío.
tu planteo inicial y esta solución están muy incompletas, ahora si es solo para cada ejecución con el diccionario bien estructurado sobra.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con ficheros PDF
Dudas Generales
coyote_cojo 4 3,235 Último mensaje 26 Febrero 2011, 06:58 am
por coyote_cojo
ayuda con ficheros
Programación C/C++
josue_tux 3 2,661 Último mensaje 3 Diciembre 2011, 01:36 am
por Deby93
Ayuda Con Ficheros .in En C
Programación C/C++
ZedGe 2 2,124 Último mensaje 28 Mayo 2012, 04:50 am
por ZedGe
Ayuda con ficheros en C
Programación C/C++
heddydearmas 0 1,358 Último mensaje 25 Mayo 2013, 21:50 pm
por heddydearmas
iDStore lista ficheros y directorios ocultos de ficheros .DS_Store
Nivel Web
MichBukana 0 3,266 Último mensaje 29 Agosto 2013, 09:21 am
por MichBukana
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines