Documentos de Académico
Documentos de Profesional
Documentos de Cultura
7 Argumentos Archivos
7 Argumentos Archivos
archivos
Algoritmia
Víctor M. Sánchez Cartagena, Leopoldo Pla Sempere
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:
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
8
Rutas
• Los archivos (agrupación de datos) de un ordenador están
ubicados en un árbol o jerarquía de carpetas
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
• el disco C:
• 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
• Ejemplo:
Programa Argumento
12
Ejemplo con argumentos
• Un programa que sume dos argumentos:
6.0
• suma.py:
numero1 = float(argv[1])
numero2 = float(argv[2])
print(numero1 + numero2)
13
Recorrer argumentos
• Un programa que sume todos los argumentos:
40.0
• suma.py:
sum = 0
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
20
Escribir en un archivo
l Para escribir un archivo se utiliza:
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