Diferència entre revisions de la pàgina «ASIX-M3-UF3-A2.1- Solucions Exercicis fitxers de text»

De wikiserver
Dreceres ràpides: navegació, cerca
(Hi ha una revisió intermèdia del mateix usuari que no es mostren)
Línia 1: Línia 1:
 
1. Fes un programa que crei un diccionari en les dades dels empleats del fitxer de text empleats.txt. Y a continuació, el recorri mostrant les seves dades.
 
1. Fes un programa que crei un diccionari en les dades dels empleats del fitxer de text empleats.txt. Y a continuació, el recorri mostrant les seves dades.
  
<!--
 
 
<source lang="python">
 
<source lang="python">
 
print("Un programa que cree un diccionario en los datos de los empleados del archivo de texto.\n")
 
print("Un programa que cree un diccionario en los datos de los empleados del archivo de texto.\n")
Línia 37: Línia 36:
 
     print("{:<4} {:<10} {:<11} {:<8}".format(id, data[0], data[1], data[2]))
 
     print("{:<4} {:<10} {:<11} {:<8}".format(id, data[0], data[1], data[2]))
 
</source>
 
</source>
-->
+
 
  
 
2. Per aquest exercici, crea prèviament un fitxer de text, que contingui només un número. Fes un mètode que pugui rebre 0, 1 o 2 paràmetres.
 
2. Per aquest exercici, crea prèviament un fitxer de text, que contingui només un número. Fes un mètode que pugui rebre 0, 1 o 2 paràmetres.
  
<!--
+
 
 
<source lang="python">
 
<source lang="python">
 
import sys
 
import sys
Línia 103: Línia 102:
 
fichero.close()
 
fichero.close()
 
</source>
 
</source>
-->
+
 
  
 
3. Fes un mètode per xifrar un fitxer de text. Rebrà com a paràmetre un fitxer de text i crearà un altre, afegint al nom de l'original "_cod" i amb la mateixa extensió. L'algoritme de xifrat consisteix en.
 
3. Fes un mètode per xifrar un fitxer de text. Rebrà com a paràmetre un fitxer de text i crearà un altre, afegint al nom de l'original "_cod" i amb la mateixa extensió. L'algoritme de xifrat consisteix en.

Revisió del 18:51, 18 abr 2024

1. Fes un programa que crei un diccionari en les dades dels empleats del fitxer de text empleats.txt. Y a continuació, el recorri mostrant les seves dades.

print("Un programa que cree un diccionario en los datos de los empleados del archivo de texto.\n")

# Crear un diccionario vacío para almacenar los datos de los empleados
empleados = {}

# Abrir el fichero para leer
fichero = open("empleats.txt", "r")

# Leer cada linea en el fichero
for i in fichero:
    # Dividir la línea (i) en campos utilizando el punto y coma como separador
    entrada = i.strip().split(';')

    # Extraer el id, nombre, apellidos y sueldo de los campos
    id = entrada[0]
    nombre = entrada[1]
    apellidos = entrada[2]
    sueldo = int(entrada[3])

    # Crear un list con nombre, apellidos y sueldo para cada entrada
    empleado_list = [nombre, apellidos, sueldo]

    # Añadir una lista al diccionario
    empleados[id] = empleado_list

# Cerrar el fichero
fichero.close()

# Imprimir el diccionario
print("{:<4} {:<10} {:<11} {:<8}".format("Id", "Nombre", "Apellidos", "Sueldo"))
print("-" * 34)
for id, data in empleados.items():
    print("{:<4} {:<10} {:<11} {:<8}".format(id, data[0], data[1], data[2]))


2. Per aquest exercici, crea prèviament un fitxer de text, que contingui només un número. Fes un mètode que pugui rebre 0, 1 o 2 paràmetres.


import sys

print("Un programa con parámetros.\n")

file = "UF3-A2.1-02.txt"

# Obtener una lista de argumentos (el primer argumento es el nombre del propio script, no hace falta)
args = sys.argv[1:]

# Contar el número de argumentos
num_args = len(args)

# Abrir fichero para escribir
fichero = open(file, "r+")
# Leer primer linea
primera_linea = fichero.readline()
# Volver a principio del fichero
fichero.seek(0)
try:
    numero = int(primera_linea)
except ValueError:
    print("La primera línea del fichero no contiene ningún número.")
    exit()

# Procesar el resultado según los argumentos
if num_args == 0:
    # Si no se dan argumentos
    print(f"En el archivo {file} hay un número: {numero}.")
elif num_args == 1:
    # Si solo se da 1 argumento
    if args[0] == "inc":
        print(f"El valor aumentado es ahora: {numero + 1}")
        fichero.writelines(str(numero + 1))
    elif args[0] == "dec":
        print(f"El valor reducido es ahora: {numero - 1}")
        fichero.writelines(str(numero - 1))
    else:
        print(f"Argumento {args[0]} desconocido.")
elif num_args == 2:
    # Si solo se da 2 argumentos
    try:
        # Convertir args[1] a entero
        arg1_numero = int(args[1])
        if args[0] == "inc":
            print(f"El valor aumentado es ahora: {numero + arg1_numero}")
            fichero.writelines(str(numero + arg1_numero))
        elif args[0] == "dec":
            print(f"El valor reducido es ahora: {numero - arg1_numero}")
            fichero.writelines(str(numero - arg1_numero))
        else:
            print(f"Argumento {args[0]} desconocido.")
    except ValueError:
        # Si la conversión falló, entonces no es un número entero.
        print(f"El argumento {args[1]} no es un número entero.")
else:
    print("Demasiados argumentos.")

# Cerrar el fichero
fichero.close()


3. Fes un mètode per xifrar un fitxer de text. Rebrà com a paràmetre un fitxer de text i crearà un altre, afegint al nom de l'original "_cod" i amb la mateixa extensió. L'algoritme de xifrat consisteix en.


4. El fitxer comarques.txt conté un llistat de les comarques de Catalunya. És un fitxer de text i cada comarca ocupa una línia. Feu un programa amb un menú que ens permeti executar els mètodes per.