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
Línia 40: Línia 40:
 
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 102: 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.