Cómo utilizar la función readline() de Python
En el mundo de la programación, es común encontrarse con la necesidad de leer archivos de texto o consola línea por línea. En Python, existe una función llamada readline()
que permite leer una sola línea de un archivo o entrada estándar. En este artículo, aprenderemos cómo utilizar esta función, sus argumentos y algunas formas en las que se puede utilizar.
Sintaxis básica
La sintaxis básica de la función es muy sencilla:
```python
linea = archivo.readline()
```
Donde `archivo` es el objeto archivo que se desea leer y `linea` es la variable donde se almacenará la línea leída.
Argumentos
La función `readline()` acepta un argumento opcional que indica el número máximo de caracteres a leer. Por defecto, lee hasta el final de la línea o del archivo. Si se especifica un número, esta función leerá los primeros caracteres de la línea.
```python
linea = archivo.readline(10)
```
En este ejemplo, `readline()` lee los primeros 10 caracteres de la línea.
Ejemplos de uso
Lectura de un archivo de texto
La función `readline()` es muy útil para la lectura de archivos de texto línea por línea. Por ejemplo, para leer un archivo llamado "texto.txt" utilizando esta función, se puede hacer lo siguiente:
```python
with open("texto.txt") as archivo:
for linea in archivo:
print(linea)
```
Este código recorre todas las líneas del archivo "texto.txt" e imprime cada una de ellas en la consola.
Lectura de entrada estándar
También es posible utilizar `readline()` para leer la entrada estándar (usualmente el teclado) en Python. Por ejemplo:
```python
while True:
linea = input()
if linea == "salir":
break
print(linea)
```
Este código utiliza `input()` para leer líneas del teclado y `readline()` no es necesario.
Lectura de líneas específicas
Por último, `readline()` puede ser útil para leer líneas específicas de un archivo. Por ejemplo, para leer la quinta línea de un archivo llamado "texto.txt", se puede hacer lo siguiente:
```python
with open("texto.txt") as archivo:
for i in range(5):
linea = archivo.readline()
print(linea)
```
Este código lee las primeras cinco líneas del archivo "texto.txt" y luego imprime la quinta línea en la consola.
Conclusión
La función `readline()` de Python es muy útil para leer archivos de texto o entrada estándar línea por línea. Aprendimos que tiene un argumento opcional para indicar el número máximo de caracteres a leer y vimos algunos ejemplos de cómo se puede utilizar esta función. Si necesitas leer archivos o la entrada estándar línea por línea, no dudes en utilizar `readline()`.
Preguntas frecuentes
¿Cuál es la diferencia entre read() y readline() en Python?
La función `read()` lee todo el contenido del archivo y lo devuelve como una cadena, mientras que `readline()` lee una sola línea del archivo y la devuelve como una cadena. Si se llama varias veces a `readline()`, se leerán varias líneas del archivo.
¿Qué pasa si llamo a readline() después de llegar al final del archivo?
Si se llama a `readline()` después de llegar al final del archivo, se devolverá una cadena vacía. Por ejemplo:
```python
with open("texto.txt") as archivo:
while True:
linea = archivo.readline()
if not linea:
break
print(linea)
```
Este código lee todas las líneas del archivo "texto.txt" y finalmente termina cuando `readline()` devuelve una cadena vacía.
¿Puedo usar readline() para leer archivos binarios?
No, `readline()` solo puede utilizarse para leer archivos de texto. Para leer archivos binarios, se recomienda utilizar la función `read()`.
¿Cuál es la forma más eficiente de leer un archivo línea por línea en Python?
La forma más eficiente de leer un archivo línea por línea en Python es utilizar un `for` loop con un archivo. Por ejemplo:
```python
with open("texto.txt") as archivo:
for linea in archivo:
print(linea)
```
Esta forma es eficiente porque lee una sola línea del archivo en la memoria a la vez. Además, no es necesario cerrar el archivo manualmente, ya que el uso de `with` se encarga de eso automáticamente.
Ejemplos de código
Aquí hay algunos ejemplos de código para leer archivos de texto con `readline()`:
```python
# Lectura de todas las líneas del archivo
with open("texto.txt") as archivo:
for linea in archivo:
print(linea)
# Lectura de la quinta línea del archivo
with open("texto.txt") as archivo:
for i in range(5):
linea = archivo.readline()
print(linea)
# Lectura de las primeras diez letras de cada línea
with open("texto.txt") as archivo:
while True:
linea = archivo.readline(10)
if not linea:
break
print(linea)
```
Además, aquí hay un ejemplo de código para leer la entrada estándar utilizando `readline()`:
```python
while True:
linea = input()
if linea == "salir":
break
print(linea)
```
Deja una respuesta