<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Python_-_Entrada%2FSalida_y_Ficheros</id>
	<title>Python - Entrada/Salida y Ficheros - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Python_-_Entrada%2FSalida_y_Ficheros"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Python_-_Entrada/Salida_y_Ficheros&amp;action=history"/>
	<updated>2026-10-24T00:36:38Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=Python_-_Entrada/Salida_y_Ficheros&amp;diff=68684&amp;oldid=prev</id>
		<title>Vieites: /* Archivos */</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Python_-_Entrada/Salida_y_Ficheros&amp;diff=68684&amp;oldid=prev"/>
		<updated>2020-11-10T21:41:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Archivos&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Entrada/Salida y Ficheros&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Los programas serían de muy poca utilidad si no fueran capaces de interaccionar con el usuario. En los programas vistos hasta ahora utilizamos la palabra clave &amp;#039;&amp;#039;print&amp;#039;&amp;#039; para mostrar mensajes por pontalla y, también, la función &amp;#039;&amp;#039;&amp;#039;input()&amp;#039;&amp;#039;&amp;#039; para obtener información del usuario.&lt;br /&gt;
&lt;br /&gt;
=== Entrada estándar ===&lt;br /&gt;
* La forma más sencilla de obtener información por parte del usuario es mediante la función &amp;#039;&amp;#039;&amp;#039;input()&amp;#039;&amp;#039;&amp;#039;. Esta función toma como parámetros un &amp;#039;&amp;#039;string&amp;#039;&amp;#039;, que será el texto a mostrar al usuario pidiendo la entrada y, luego, devolverá una cadena con los caracteres introducidos por el usuario, hasta que este pulse la tecla &amp;#039;&amp;#039;&amp;#039;Enter&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
: Veamos un ejemplo sencillo:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python3&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
nombre = input(&amp;quot;Introduce tu nombre: &amp;quot;)&lt;br /&gt;
print(&amp;quot;Encantado de conocerce {}&amp;#039;.format(nombre))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:: - Si necesitáramos un entero como entrada en lugar de una cadena, por ejemplo, podríamos utilizar la función  int  para convertir la cadena a &lt;br /&gt;
entero, aunque sería conveniente tener en cuenta que puede lanzarse una excepción si lo que introduce el usuario no es un número.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# !/usr/bin/python3&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
    edad = int(input(&amp;quot;Edad: &amp;quot;))&lt;br /&gt;
    dias = edad * 365&lt;br /&gt;
    print(&amp;#039;Has vivido {} días&amp;#039;.format(dias))&lt;br /&gt;
except ValueError:&lt;br /&gt;
    print(&amp;#039;Escribe un número entero&amp;#039;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Parámetros de línea de comando ===&lt;br /&gt;
Para recibir datos introducidos por el usuario también se pueden utilizar &amp;#039;&amp;#039;&amp;#039;parámetros&amp;#039;&amp;#039;&amp;#039; a la hora de llamar al programa (tal y como estamos acostumbrados al utilizar la línea de comandos). &lt;br /&gt;
: Por ejemplo:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ media.py 12 5 10 27&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
: En este caso los parámetros serían los números: 12, 5, 10 y 27, a los que se puede acceder a traves de la lista &amp;#039;&amp;#039;&amp;#039;sys.argv&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
: Antes de poder utilizar esta variable tendremos que importar el módulo &amp;#039;&amp;#039;&amp;#039;sys&amp;#039;&amp;#039;&amp;#039;, siendo cada uno de los parámetros llamado de la forma: sys.argv[1], sys.arg[2], etc.&lt;br /&gt;
: El parámetro sys.argv[0] contiene siempre el nombre del programa (en este caso media.py).&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# !/usr/bin/python3&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
import sys&lt;br /&gt;
## Variables&lt;br /&gt;
nelementos = len(sys.argv)&lt;br /&gt;
suma = 0&lt;br /&gt;
media = 0&lt;br /&gt;
## Hacemos la suma de todos los elementos&lt;br /&gt;
#El elemento 0 lo saltamos&lt;br /&gt;
#pues es el nombre del script&lt;br /&gt;
for i in range(1, nelementos):&lt;br /&gt;
    suma += float(sys.argv[i])&lt;br /&gt;
# y luego, con ella, la media&lt;br /&gt;
media = float(suma / (nelementos - 1))&lt;br /&gt;
## Mostramos por pantalla los resultados&lt;br /&gt;
print(&amp;#039;El número de elementos introducidos es {}&amp;#039;.format(nelementos-1))&lt;br /&gt;
print(&amp;#039;\nLa suma de todos los números es: {}&amp;#039;.format(suma))&lt;br /&gt;
print(&amp;#039;\nLa media de los números es: {}&amp;#039;.format(media))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
: Existen módulos, como [https://docs.python.org/3.7/library/argparse.html argparse], que facilitan el trabajo con los argumentos de la línea de comandos...&lt;br /&gt;
&lt;br /&gt;
=== Parámetros de línea de comando utilizando el módulo &amp;#039;&amp;#039;&amp;#039;argparse&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
Utilizamos el módulo &amp;#039;&amp;#039;&amp;#039;argparse&amp;#039;&amp;#039;&amp;#039; del siguiente modo, donde vemos que, incluso, podemos forzar a que uno de los argumentos sea de un tipo determinado de datos.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python3&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
import argparse&lt;br /&gt;
&lt;br /&gt;
parser = argparse.ArgumentParser(description=&amp;#039;Paso de parámetros&amp;#039;)&lt;br /&gt;
#El parámetro 1 es obligatorio que sea un entero&lt;br /&gt;
parser.add_argument(&amp;quot;-p1&amp;quot;, dest=&amp;quot;param1&amp;quot;, help=&amp;quot;parametro1 - entero&amp;quot;, type=int)&lt;br /&gt;
#No forzamos ningún tipo para el parámetro 2&lt;br /&gt;
parser.add_argument(&amp;quot;-p2&amp;quot;, dest=&amp;quot;param2&amp;quot;, help=&amp;quot;parametro2&amp;quot;)&lt;br /&gt;
params = parser.parse_args()&lt;br /&gt;
print(params.param1)&lt;br /&gt;
print(params.param2)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Ahora lo ejecutamos del siguiente modo&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#Ver la ayuda&lt;br /&gt;
$ python3 prueba.py -h&lt;br /&gt;
#Ejecutar el comando&lt;br /&gt;
$ python3 prueba.py -p1 1 -p2 dos&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Salida estándar ===&lt;br /&gt;
: La forma más sencilla de mostrar algo en la salida estándar es mediante el uso de la función &amp;#039;&amp;#039;&amp;#039;print()&amp;#039;&amp;#039;&amp;#039;, como ya se fue utilizando en varias ocasiones.&lt;br /&gt;
: · En su forma más básica, a la función &amp;#039;&amp;#039;print()&amp;#039;&amp;#039; se le pasa una cadena, que se mostrará en la salida estándar (normalmente la pantalla):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print(&amp;quot;Hola mundo&amp;quot;)&lt;br /&gt;
Hola mundo&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
: · Después de imprimir la cadena pasada como parámetro el puntero se sitúa en la siguiente línea de la pantalla.&lt;br /&gt;
: · Si se quiere forzar que se salte a una nueva línea se utilizará el carácter especial &amp;#039;&amp;#039;&amp;#039;\n&amp;#039;&amp;#039;&amp;#039; (también se puede utilizar otros caracteres especiales como &amp;#039;&amp;#039;&amp;#039;\t&amp;#039;&amp;#039;&amp;#039;, este introducirá un tabulado en el texto).&lt;br /&gt;
: · Si, por el contrario, se desea que la siguiente impresión se realice en la misma línea hay que configurar el parámetro de la función &amp;#039;&amp;#039;&amp;#039;print()&amp;#039;&amp;#039;&amp;#039; del siguiente modo: &amp;#039;&amp;#039;&amp;#039;end=&amp;quot;&amp;quot;&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
for i in range(5):&lt;br /&gt;
    print(i, end=&amp;#039;&amp;#039;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
: · Si queremos concatenar texto podemos utilizar una coma &amp;#039;&amp;#039;&amp;#039;(,)&amp;#039;&amp;#039;&amp;#039; o un signo más &amp;#039;&amp;#039;&amp;#039;(+)&amp;#039;&amp;#039;&amp;#039;. La diferencia está en que con la coma se añade automáticamente un espacio entre los textos concatenados, con el signo más esto no ocurre:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print(&amp;quot;Hola&amp;quot;, &amp;quot;mundo&amp;quot;)&lt;br /&gt;
Hola mundo&lt;br /&gt;
######&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print(&amp;quot;Hola&amp;quot; + &amp;quot;mundo&amp;quot;)&lt;br /&gt;
Holamundo&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
: · Al utilizar el operador &amp;#039;&amp;#039;&amp;#039;+&amp;#039;&amp;#039;&amp;#039; tendríamos que convertir antes cada argumento en una cadena (si no lo es ya).&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print(&amp;quot;Cuesta&amp;quot;, 3, &amp;quot;euros&amp;quot;)&lt;br /&gt;
Cuesta 3 euros&lt;br /&gt;
#####&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print(&amp;quot;Cuesta &amp;quot; + 3 + &amp;quot; euros&amp;quot;)&lt;br /&gt;
TypeError: Can&amp;#039;t convert &amp;#039;int&amp;#039; object to str implicitly&lt;br /&gt;
#####&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print(&amp;quot;Cuesta &amp;quot; + str(3) + &amp;quot; euros&amp;quot;)&lt;br /&gt;
Cuesta 3 euros&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
: · Utilizando la función [https://www.digitalocean.com/community/tutorials/how-to-use-string-formatters-in-python-3 format()] podemos darle forma al texto mostrado por pantalla de un modo más versátil.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Trabajo con variables&lt;br /&gt;
saludo = &amp;quot;Hola&amp;quot;&lt;br /&gt;
lugar = &amp;quot;Mundo&amp;quot;&lt;br /&gt;
print(&amp;#039;\n{} {}&amp;#039;.format(saludo, lugar))&lt;br /&gt;
##Indicando la posición del elemento&lt;br /&gt;
print(&amp;#039;\n{0} {1}&amp;#039;.format(saludo, lugar))&lt;br /&gt;
##Indicando, además, el número de caracteres que ocupa cada string &lt;br /&gt;
####(10 primero, 8 segundo). &lt;br /&gt;
print(&amp;#039;{0:10s} {1:8s}&amp;#039;.format(saludo, lugar))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:: En este ejemplo estamos indicando {Elemento:Número_caracteresTipo_elemento} el tipo de elemento a mostrar puede ser:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; &lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | Especificador&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot; | Formato&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;s&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Cadena&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;d&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Entero&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;o&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Octal&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Hexadecimal&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;f&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Real&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:: _ En el caso de los reales es posible indicar la precisión a utilizar precediendo la &amp;#039;&amp;#039;&amp;#039;f&amp;#039;&amp;#039;&amp;#039; de un punto seguido del número de decimales que queremos mostrar:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from math import pi&lt;br /&gt;
print(&amp;#039;Pi con cuatro decimales: {0:.4f}&amp;#039;.format(pi))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: · Para representar datos en formato tabla podemos hacerlo de dos modos:&lt;br /&gt;
:: - Utilizando el [https://docs.python.org/2/library/string.html método de los objetos string] &amp;#039;&amp;#039;str.rjust()&amp;#039;&amp;#039;. Y, ojo, los espacios que existen entre las columnas son los que añadimos entre las comas.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
for x in range(1,11):&lt;br /&gt;
    print(repr(x).rjust(2), repr(x**2).rjust(3), \&lt;br /&gt;
          repr(x**3).rjust(4))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:: - Definiendo las columnas de la tabla y el ancho de cada una de ellas:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#Crear una tabla de enteros (d)&lt;br /&gt;
for x in range(1,11):&lt;br /&gt;
    print(&amp;#039;{0:2d} {1:4d} {2:4d}&amp;#039;.format(x, x * x, x * x * x))&lt;br /&gt;
    #Indicamos el tipo de elemento y el número de caracteres&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
: · Si queremos ajustar números añadiendo ceros a la izquierda de, como mínimo, un tamaño determinado, utilizamos el [https://docs.python.org/2/library/string.html método del elemento string] &amp;#039;&amp;#039;str.zfill()&amp;#039;&amp;#039;. Fijarse que si se pide una salida de menos caracteres que el número original, la salida es el número original:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;#039;12&amp;#039;.zfill(5))&lt;br /&gt;
print(&amp;#039;-3.14&amp;#039;.zfill(7))&lt;br /&gt;
print(&amp;#039;3.14159265359&amp;#039;.zfill(7))&lt;br /&gt;
################################&lt;br /&gt;
#00012&lt;br /&gt;
#-003.14&lt;br /&gt;
#3.14159265359&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
: · Para mostrar datos de una tupla, lista o diccionario también es interesante el siguiente método:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
tabla = {&amp;#039;Pepe&amp;#039;: 5.5, &amp;#039;Andrea&amp;#039;: 7.25, &amp;#039;Juan&amp;#039;: 6}&lt;br /&gt;
&lt;br /&gt;
for nombre, nota in tabla.items():&lt;br /&gt;
    print(&amp;#039;{0:7} ==&amp;gt; {1:2.2f}&amp;#039;.format(nombre, nota))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:: Salida:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Juan    ==&amp;gt; 6.00&lt;br /&gt;
Andrea  ==&amp;gt; 7.25&lt;br /&gt;
Pepe    ==&amp;gt; 5.50&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Archivos ===&lt;br /&gt;
: [https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files Los ficheros en Python] son &amp;#039;&amp;#039;&amp;#039;objetos de tipo &amp;#039;&amp;#039;file&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; creados mediante la función &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;open&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; (abrir).&lt;br /&gt;
: Esta función toma como parámetros una cadena con la ruta del fichero a abrir, una cadena opcional indicando el modo de acceso (si no se especifica se accede en modo lectura) y, por último, un entero opcional para especificar un tamaño de &amp;#039;&amp;#039;buffer&amp;#039;&amp;#039; distinto del utilizado por defecto.&lt;br /&gt;
: El modo de acceso puede ser cualquier combinación lógica de los siguientes modos:&lt;br /&gt;
:: - &amp;#039;&amp;#039;&amp;#039;r&amp;#039;&amp;#039;&amp;#039; : &amp;#039;&amp;#039;read&amp;#039;&amp;#039;, lectura. Abre el archivo en modo lectura. El archivo tiene que existir previamente, en caso contrario se lanzará una excepción de tipo &amp;#039;&amp;#039;IOError&amp;#039;&amp;#039;.&lt;br /&gt;
:: - &amp;#039;&amp;#039;&amp;#039;w&amp;#039;&amp;#039;&amp;#039; : &amp;#039;&amp;#039;write&amp;#039;&amp;#039;, escritura. Abre el archivo en modo escritura. Si el archivo no existe se crea. Si existe, sobreescribe el contenido.&lt;br /&gt;
:: - &amp;#039;&amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;#039; : abre el archivo en modo escritura. Si el archivo no existe, se crea; si no, se genera una excepción del tipo &amp;#039;&amp;#039;FileExistsError&amp;#039;&amp;#039;.&lt;br /&gt;
:: - &amp;#039;&amp;#039;&amp;#039;a&amp;#039;&amp;#039;&amp;#039; : &amp;#039;&amp;#039;append&amp;#039;&amp;#039;, añadir. Abre el archivo en modo escritura. Se diferencia del modo &amp;#039;&amp;#039;&amp;#039;w&amp;#039;&amp;#039;&amp;#039; en que en este caso no se sobreescribe el contenido del archivo, sino que se comienza a escribir al final del archivo.&lt;br /&gt;
:: - &amp;#039;&amp;#039;&amp;#039;b&amp;#039;&amp;#039;&amp;#039; : &amp;#039;&amp;#039;binary&amp;#039;&amp;#039;, binario.&lt;br /&gt;
:: - &amp;#039;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;#039; : &amp;#039;&amp;#039;text mode&amp;#039;&amp;#039; (predeterminado), el archivo se abre en modo texto, por lo que la salida será una cadena de texto, así como la entrada.&lt;br /&gt;
:: - &amp;#039;&amp;#039;&amp;#039;+&amp;#039;&amp;#039;&amp;#039; : permite lectura y escritura simultáneas (r+, w+, x+ y a+).&lt;br /&gt;
:: - &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039; : &amp;#039;&amp;#039;universal newline&amp;#039;&amp;#039;, saltos de línea universales. Permite trabajar con archivos que tengan un formato para los saltos de línea que no coincide con el de la plataforma actual.&lt;br /&gt;
: Ejemplos:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#Abrir archivo en modo lectura&lt;br /&gt;
fr = open(“archivo.txt”, “r”)&lt;br /&gt;
#Abrir archivo en modo escritura&lt;br /&gt;
fw = open(“archivo.txt”, “w”)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
: Tras crear el objeto que representa nuestro archivo mediante la función &amp;#039;&amp;#039;open&amp;#039;&amp;#039; podremos realizar operaciones de lectura/escritura.&lt;br /&gt;
: Una vez terminemos de trabajar con el archivo debemos cerrarlo utilizando el método &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;close&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Lectura de archivos&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Para la lectura de archivos se utilizan los métodos &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;read&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;readline&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; y &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;readlines&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:: &amp;#039;&amp;#039;&amp;#039;- El método &amp;#039;&amp;#039;read&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; devuelve una cadena con el contenido del archivo o bien el contenido de los primeros &amp;#039;&amp;#039;&amp;#039;n bytes&amp;#039;&amp;#039;&amp;#039;, si se especifica el tamaño máximo a leer.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#Contenido completo&lt;br /&gt;
completo = fr.read()&lt;br /&gt;
#Los 512 primeros bytes&lt;br /&gt;
parte = fr.read(512)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:: &amp;#039;&amp;#039;&amp;#039;- El método &amp;#039;&amp;#039;readline&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; sirve para leer las líneas del fichero una por una. Es decir, cada vez que se llama a este método, se devuelve el contenido del archivo desde el puntero hasta que se encuentra un carácter de nueva línea, incluyendo este carácter.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
while True:&lt;br /&gt;
    linea = fr.readline()&lt;br /&gt;
    if not linea:&lt;br /&gt;
        break&lt;br /&gt;
    print(linea)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:: &amp;#039;&amp;#039;&amp;#039;- El método &amp;#039;&amp;#039;readlines&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; funciona leyendo todas las líneas del archivo y devolviendo una lista con las líneas leídas.&lt;br /&gt;
&lt;br /&gt;
Cuando se termina de utilizar un archivo para leerlo, o escribirlo, siempre hay que cerrarlo:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
f = open(&amp;#039;/proc/cpuinfo&amp;#039;)&lt;br /&gt;
for line in f:&lt;br /&gt;
    if (line.strip().startswith(&amp;#039;model name&amp;#039;)):&lt;br /&gt;
        model_name = line.split(&amp;#039;:&amp;#039;)[1].strip()&lt;br /&gt;
        print(&amp;quot;Microprocesador : &amp;quot;, model_name)&lt;br /&gt;
f.close()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un modo más cómodo de abrir y cerrar un archivo es utilizando la instrucción &amp;#039;&amp;#039;with&amp;#039;&amp;#039;, ésta cierra siempre el archivo al terminar aunque se produzca una excepción:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
with open(&amp;#039;/proc/cpuinfo&amp;#039;) as f:&lt;br /&gt;
    for line in f:&lt;br /&gt;
        if (line.strip().startswith(&amp;#039;model name&amp;#039;)):&lt;br /&gt;
            model_name = line.split(&amp;#039;:&amp;#039;)[1].strip()&lt;br /&gt;
            print(&amp;quot;Microprocesador : &amp;quot;, model_name)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:: - [https://docs.python.org/3/library/stdtypes.html split y strip en python.org]&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Escritura de archivos&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Para la escritura de archivos se utilizan los métodos &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;write&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; y &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;writelines&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
:: &amp;#039;&amp;#039;&amp;#039;- El método &amp;#039;&amp;#039;write&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; funciona escribiendo en el archivo una cadena de texto que toma como parámetro.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
import urllib.request&lt;br /&gt;
&lt;br /&gt;
##Guardar el html de una web en un archivo&lt;br /&gt;
respuesta = urllib.request.urlopen(&amp;#039;http://manuais.iessanclemente.net/&amp;#039;)&lt;br /&gt;
html = respuesta.read()&lt;br /&gt;
f1 = open(&amp;quot;.\manuais.html&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
f1.write(repr(html))&lt;br /&gt;
f1.close()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:: &amp;#039;&amp;#039;&amp;#039;- El método &amp;#039;&amp;#039;writelines&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; toma como parámetro una lista de cadenas de texto indicando las líneas que queremos escribir en el fichero.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Mover el puntero de lectura/escritura&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Hay situaciones en las que nos puede interesar mover el puntero de lectura/escritura a una posición determinada del archivo. Por ejemplo, si queremos empezar a escribir en una posición determinada y no al final o al principio del archivo.&lt;br /&gt;
:: &amp;#039;&amp;#039;&amp;#039;- El método &amp;#039;&amp;#039;seek&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; toma como parámetro un número positivo o negativo a utilizar como desplazamiento. También se puede utilizar un segundo parámetro para indicar desde dónde se quiere hacer el desplazamiento:&lt;br /&gt;
::: · &amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039; indica que el desplazamiento se refiere al principio del fichero (comportamiento por defecto).&lt;br /&gt;
::: · &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039; indica la posición actual.&lt;br /&gt;
::: · &amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039; indica el final del fichero.&lt;br /&gt;
:: &amp;#039;&amp;#039;&amp;#039;- El método &amp;#039;&amp;#039;tell()&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; determina la posición en la que se encuentra actualmente el puntero. Este método devuelve un entero indicando la distancia en bytes desde el principio del fichero.&lt;br /&gt;
&lt;br /&gt;
-- [[Python3|Volver]]&lt;/div&gt;</summary>
		<author><name>Vieites</name></author>
	</entry>
</feed>