Está en la página 1de 26

Tema 7: Argumentos y

archivos
Algoritmia
Víctor M. Sánchez Cartagena, Leopoldo Pla Sempere

Departamento de Lenguajes y Sistemas Informáticos


Índice
• La terminal
• Argumentos de aplicación
• Cómo utilizar argumentos en Python
• Archivos
• Cómo usar archivos en Python
• Cómo recorrer carpetas
2
La terminal
Interfaz de línea de comandos

4
Interfaz de línea de comandos
• También conocida como terminal, “Shell”, “CMD” (las siglas en
inglés), “prompt” de comandos o línea de comandos
• Es aquella interfaz del Sistema Operativo que nos permite
ejecutar comandos en forma de líneas de texto.
• Su diseño recuerda a los ordenadores de los años 80
• Porque era la única forma que había para interactuar con
un ordenador. No había ventanas ni ratón

5
Interfaz de línea de comandos
• El patrón general de una terminal es:

Prompt comando param1 param2 param3 … paramN

• El ”prompt” es un símbolo que indica al usuario que puede introducir comandos.

• Dependiendo de la variante de la terminal o los permisos adquiridos en la sesión, el símbolo es diferente

• Por ejemplo, una terminal recién iniciada en Windows muestra:

C:\Users\lpla>

• Y para poder ejecutar un comando básico, como listar el contenido de la carpeta donde estamos ubicados, bastaría
con escribir:

C:\Users\lpla>dir

6
Interfaz de línea de comandos
• Para ejecutar un programa o comando, la terminal tiene en
cuenta, entre otras cosas:
• La ubicación donde estamos en la sesión
• Los comandos disponibles
• Si el programa o comando requiere estar en una carpeta
concreta para acceder a su contenido, o si el comando no está
configurado para que la terminal lo detecte, el proceso fallará.

7
Interfaz de línea de comandos
• Ambos problemas se pueden solucionar
• La ubicación donde estamos en la sesión

• Podemos cambiar de carpeta con el comando “cd” (change directory)

• Los comandos disponibles

• Podemos decirle a la terminal dónde está exactamente ubicado el


programa que vamos a lanzar

• O dicho de otra forma, podemos darle la ruta del programa.

8
Rutas
• Los archivos (agrupación de datos) de un ordenador están
ubicados en un árbol o jerarquía de carpetas

• Al recorrer este árbol metiéndonos en carpetas y


subcarpetas, podemos ver las carpetas superiores (o
padre) de donde estamos

• Esta lista de carpetas “padre” es la ruta

9
Rutas
• La ruta de un archivo es única

• Se diseñó así para identificar archivos con el mismo nombre en distintas carpetas

• Y eso hace que no pueda haber dos archivos con el mismo nombre en la misma carpeta

• Por ejemplo, la ruta C:\Usuario\lpla consta de tres elementos:

• el disco C:

• la carpeta Usuario ubicada en la raíz

• y el directorio lpla, que es la ruta del directorio personal de mi usuario.

• La unidad se puede omitir en Windows si siempre se va a utilizar el disco duro activo por defecto
(disco C: )

10
Argumentos
Argumentos de aplicación
• Definición: es el mecanismo del Sistema Operativo que permite proporcionar información a un
programa antes de ejecutarse

• Es relativamente similar en funcionalidad a pedir al usuario información utilizando la llamada


input()

• Ejemplo:

C:\Usuarios\lpla> python3 ejercicio1.py 32

Programa Argumento

• Un programa puede tener cero o más argumentos

12
Ejemplo con argumentos
• Un programa que sume dos argumentos:

C:\Usuarios\lpla> python3 suma.py 2 4

6.0

• suma.py:

from sys import argv

numero1 = float(argv[1])

numero2 = float(argv[2])

print(numero1 + numero2)

13
Recorrer argumentos
• Un programa que sume todos los argumentos:

C:\Usuarios\lpla> python3 suma.py 2 6 8 24

40.0

• suma.py:

from sys import argv

sum = 0

for i in range(1, len(argv)):

sum += float(argv[i])

print(sum)

14
Configuración en PyCharm

15
Archivos
Uso de archivos
l Los archivos se pueden leer o escribir
l En modo texto (legible por el humano)
l En modo binario (legible por el ordenador)
l Los archivos se deben manejar en este orden:
1. Abrir
2. Leer o escribir
3. Cerrar
l Todo archivo abierto se debe cerrar
l En especial si se hacen procesos de escritura
l Para evitar perder información

17
Abrir un archivo
l fichero = open(nombre_archivo, modo)
l Modos
l ‘r’ -> Lectura texto
l 'w’ -> Escritura texto
l ‘a’ -> Añadir texto al final del documento
l ‘r+’ -> Lectura y escritura texto
l ‘w+’ -> Lectura y escritura texto
l ‘a+’ -> Lectura y añadir al final texto
Atención:
l Los modos de solo escritura ('w') BORRARÁN el contenido del archivo.
l Si se abre en modo lectura ('r' o 'r+') y el archivo no existe, saltará la excepción FileNotFoundError.
l Si se abre en modo escritura ('w', 'w+', 'a+') si el archivo no existe, se creará

18
Cerrar un archivo
l fichero.close()
l Esto se debe hacer siempre que se abra un archivo:
try:
# Abro el archivo
fichero = open(nombre_archivo, mode)
# Leo o escribo en el archivo

# Cierro el archivo
fichero.close()
except FileNotFoundError as e:
print('El archivo "{0}" no existe.'.format(nombre_archivo), file=stderr)

19
Abrir y cerrar un archivo con “with”
l También se puede hacer que se cierre automáticamente:
try:
# Abro el archivo
with open(nombre_archivo, mode) as fichero:
# Leo o escribo en el archivo

# El archivo se cierra automáticamente al acabar el with


except FileNotFoundError as e:
print('El archivo "{0}" no existe.'.format(nombre_archivo), file=stderr)

20
Escribir en un archivo
l Para escribir un archivo se utiliza:

l file.write(cadena) # Escribe esa cadena en el archivo


l file.write (cadena + '\n') # Escribe esa cadena en el archivo y añade un salto de línea

l Ejemplo:
try:
# Abro el archivo
with open(nombre_archivo, 'w') as fichero:
# Escribo dos líneas
fichero.write ('Hola mundo\n’)
fichero.write('Adiós mundo cruel\n’)
# Escribo dos cadenas
fichero.write('Esto es ‘)
fichero.write('toda una sorpresa.')
except FileNotFoundError as e:
print('El archivo "{0}" no existe.'.format(nombre_archivo), file=stderr)

21
Leer un archivo
l Para leer un archivo se utiliza:
l fichero.read(num) # Lee un número de caracteres
l fichero.readline() # Lee una línea completa
l Ejemplo: Abro un fichero y leo una línea
try:
# Abro el archivo
with open(nombre_archivo, ‘r') as fichero:
# Leo la primera línea del archivo y la imprimo por pantalla
linea = fichero.readline()
print(linea)
# El archivo se cierra automáticamente al acabar el with
except FileNotFoundError as e:
print('El archivo "{0}" no existe.'.format(nombre_archivo), file=stderr)

22
Leer un archivo
l Ejemplo: Abro un fichero y leo un carácter
try:
# Abro el archivo
with open(nombre_archivo, ‘r') as fichero:
# Leo la primera línea del archivo y la imprimo por pantalla
letra = fichero.read(1)
print(letra)
# El archivo se cierra automáticamente al acabar el with
except FileNotFoundError as e:
print('El archivo "{0}" no existe.'.format(nombre_archivo), file=stderr)

23
Leer todo el contenido de un archivo
try:
# Abro el archivo
with open(nombre_archivo, ‘r') as fichero:
# Leo todas las líneas del archivo
for linea in fichero:
print(linea, end=‘’)
# El archivo se cierra automáticamente al acabar el with
except FileNotFoundError as e:
print('El archivo "{0}" no existe.'.format(nombre_archivo), file=stderr)

24
Recorrer carpetas
l Para obtener una lista de ficheros en una carpeta se utiliza:
l from os import scandir
l scandir(ruta)
l Devuelve una entradas con datos de los archivos en esa ruta, si no ponemos ruta
utilizará la ruta del proyecto
l Ejemplo:
from os import scandir
with scandir() as dir:
for file in dir:
print('Nombre: {0}'.format(file.name))
print('Ruta: {0}'.format(file.path))
print('¿Es un directorio? {0}'.format(file.is_dir()))
print('¿Es un archivo? {0}'.format(file.is_file()))

25
Qué cosas no se pueden hacer
l No se puede posicionar en una línea determinada y
editarla, borrarla o sustituirla
l Hay que leer todas las líneas anteriores para poder
llegar a ella

26

También podría gustarte