Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Repaso
1. Apertura de un archivo con cierre automatizado (uso de with)
2. Existen más permisos de escritura/lectura ("r+", "w+", "a")
3. Las cadenas de caracteres tienen métodos especiales para trabajar con ellas.
Método split
El método split genera una lista de los elementos separados por algún substring o caracter.
Ejemplo:
cadena_coma="1,3,4,5,7,8,9,10"
cadena_espacio="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20"
cadena_tab="1\t2\t3\t4\t5\t6\t7"
datos_coma=cadena_coma.split(",")
datos_espacio=cadena_espacio.split(" ")
datos_tab=cadena_tab.split("\t")
print(datos_coma)
print(datos_espacio)
print(datos_tab)
Se usa una expresión como la siguiente "string con formato" % valores. Veamos ejemplos
In [14]: 1 print ("Entero con 5 cifras, espacios por delante %5d" % 11) # saca tre
2 print ("Entero con 5 cifras, ceros por delante %05d" % 11) # saca 000
3 print ("Flotante con 2 decimales %.2f" % 12.34567) # saca 12.
4 print ("Flotante con 2 decimales, diez cifras, espacios por delante %10.2f
5 print ("Flotante con 2 decimales, diez cifras, ceros por delante %010.2f" %
6
In [ ]: 1
In [ ]: 1
https://docs.python.org/3/library/stdtypes.html#string-methods
(https://docs.python.org/3/library/stdtypes.html#string-methods)
In [ ]: 1
Los archivos csv son unos de los formatos más utilizados. Esto es debido a su facilidad de uso
y a que cualquier hoja de cálculo puede usar ese formato.
In [15]: 1 help(np.loadtxt)
genfromtxt : Load data with missing values handled as specified.
scipy.io.loadmat : reads MATLAB data files
Notes
-----
This function aims to be a fast reader for simply formatted files. The
`genfromtxt` function provides more sophisticated handling of, e.g.,
lines with missing values.
.. versionadded:: 1.10.0
Examples
--------
>>> from io import StringIO # StringIO behaves like a file object
>>> c = StringIO("0 1\n2 3")
>>> np.loadtxt(c)
array([[0., 1.],
[2 3 ]])
In [16]: 1 # El archivo Datos.csv contiene un datos en un arreglo de Ncolumnas y X
2 # renglones sin vacíos. No cabeceras,
3 # todo son números. Carguelo utilizando loadtxt.
4
5
In [ ]: 1
2
3
4
A=np.random.rand(10, 5)
np.save("MiPrimerArchivonpy.npy", A)
In [20]: 1 help(np.save)
Help on function save in module numpy:
Parameters
----------
file : file, str, or pathlib.Path
File or filename to which the data is saved. If file is a file-objec
t,
then the filename is unchanged. If file is a string or Path, a ``.np
y``
extension will be appended to the filename if it does not already
have one.
arr : array_like
Array data to be saved.
allow_pickle : bool, optional
Allow saving object arrays using Python pickles. Reasons for disallow
ing
pickles include security (loading pickled data can execute arbitrary
code) and portability (pickled objects may not be loadable on differe
nt
Python installations, for example if the stored objects require libra
ries
that are not available, and not all pickled data is compatible betwee
n
Python 2 and Python 3).
Default: True
fix_imports : bool, optional
Only useful in forcing objects in object arrays on Python 3 to be
pickled in a Python 2 compatible way. If `fix_imports` is True, pickl
e
will try to map the new Python 3 names to the old module names used i
n
Python 2, so that the pickle data stream is readable with Python 2.
See Also
--------
savez : Save several arrays into a ``.npz`` archive
savetxt, load
Notes
-----
For a description of the ``.npy`` format, see :py:mod:`numpy.lib.format`.
Any data saved to the file is appended to the end of the file.
Examples
--------
>>> from tempfile import TemporaryFile
>>> outfile = TemporaryFile()
>>> x = np.arange(10)
>>> np.save(outfile, x)
In [25]: 1 A=np.random.rand(10, 5)
2 np.save("Miprimerarchivo.npy", A)
3 # %ls Usa el comando mágico ls para corroborar la existencia
In [23]: 1 help(np.savez)
Arrays to save to the file. Since it is not possible for Python to
know the names of the arrays outside `savez`, the arrays will be sa
ved
with names "arr_0", "arr_1", and so on. These arguments can be any
expression.
kwds : Keyword arguments, optional
Arrays to save to the file. Arrays will be saved in the file with t
he
keyword names.
Returns
-------
None
See Also
--------
save : Save a single array to a binary file in NumPy format.
savetxt : Save an array to a file as plain text.
savez_compressed : Save several arrays into a compressed ``.npz`` archi
ve
In [26]: 1 B=np.random.rand(20, 5)
2 C=np.load("Miprimerarchivo.npy")
3 # Ahora guardemos múltiples arreglos:
4 np.savez("PruebaVariosArchivos.npz", B, C)
5 #%ls
In [30]: 1 D=np.random.rand(50, 5)
2 C=np.load("Miprimerarchivo.npy")
3 # Ahora guardemos múltiples arreglos:
4 datos={"Uno":D, "Dos":C, "Tres":B, "metadata": "Nada especial todo son pru
5 np.savez("PruebaVariosArchivosv2.npz", **datos)
6 #%ls
Archivos pickle
Todas las variables cradas durante el tiempo de vida de un programa son temporalmente
almacenadas en la memoria y desaparecen cuando el programa o la sesión finaliza. Python
provee de un módulo para almacenar e invocar variables almacenadas en algún dispositivo: El
módulo Pickle4. Este módulo serializa la estructura de datos manejada por Python en un
formato de bits y la almacena en algún medio que se le indique. Además permite también leer
este archivo binario para convertirlo en la estructura original. De este modo, cuando se cargue
tal archivo será del tipo en que se había estado manejado anteriormente.
import pickle
pickle.load(open(’spdict.data’,’rb’)) # abre el archivo creado celda
s arriba.
El método load requiere la variable que maneja el archivo a abrir. Debe notarse que los
permisos son "rb" indicando que es de lectura binaria y "wb" indicadon que es la escritura d un
archivo binario. Si el archivo no es manipulado con estos permisos de archivo binario, resultará
en un error, y que python tratará de convertir los válores a Unicode.y to convert it to Unicode
and will fail.
0: Es el original fácilmente legible por humanos. Es compatible con las primeras versiones
de Python.
1: Es el formato binario antiguo, es compatible con versiones antiguas de Python.
2: Es mucho más eficiente en el codificado y compresión ademas de agregar nuevas
clases. Compatible con python 2.x
3: Es el default, tiene un soporte explícito para objetos binarios y no es compatile con
Python 2.x. Es el más recomendado si el uso será únicamente en las versiones de
Python3.x
4: Disponible a partir de la versión 3.4. Este protocolo soporta objetos más grandes que los
otros protocolos, además permite la conversión a pickle de más estructuras de datos que
los anteriores.
import os
os.getcwd()
os.chdir(’..’)
os.getcwd()
3. listdir(dir): Devuelve una list conteniendo los nombres de las entradas en el directorio.
Para saber si un nombre regresado por listdir es un archivo o una carpeta (directorio), use
el comando: os.path.isdir() o os.path.isfile().
import os
archivos=os.listdir(os.getcwd())
print("Los elementos en este directorio son: \n", archivos)
print("\n¿Es ", archivos[1], "una carpeta?: ", os.path.isdir(archivos
[1]))
print("¿Es", archivos[1], "un archivo?: ", os.path.isfile(archivos
[1]))
4. remove(file): Borrael archivo file. El archivo debe existir y se deben tener permisos de
escritura sobre él.
os.remove("borrame.txt")
os.rename('/home/sb/seqs/readme.txt', '/home/sb/Readme')
mkdir(path): Create a directory named path.
os.mkdir(’/home/sb/processed-seqs’)
os.path.join(os.getcwd(), "images")
os.path.exists(os.path.join(os.getcwd(), "images"))
9. path.split(path): Devuelve una tupla separando el nombre del archivo o directorio al final
del resto de la ruta.
os.path.split(’/home/sb/seqs/ms2333.ab1’)
(’/home/sb/seqs’, ’ms2333.ab1’)
10. path.splitext(path): Exrae la extensión de un archivo. Este método devuelve una tupla con
la extensión adquirida mediante un punto.
os.path.splitext(’/home/sb/seqs/ms2333.ab1’)
(’/home/sb/seqs/ms2333’, ’.ab1’)
In [ ]: 1 import os
2 archivos=os.listdir(os.getcwd())
3 print("Los elementos en este directorio son: \n", archivos)
4 print("\n¿Es ", archivos[1], "una carpeta?: ", os.path.isdir(archivos[1])
5 print("¿Es", archivos[1], "un archivo?: ", os.path.isfile(archivos[1]))
In [ ]: 1 # Práctica, Haga una función que guarde una matriz aleatoria de 200 renglon
2 # Una vez que lo haya generado, lea el archivo utilizando la función loadtx
3