¿Está cansado de ir al navegador, descargar los datos que desea y luego guardarlos en la carpeta deseada? Bueno, ¡aquí está tu solución! ¡Puedes descargar los datos de la web usando Python! ¡Que todo se automatice!
¿Está cansado de ir al navegador, descargar los datos que desea y luego guardarlos en la carpeta deseada? Bueno, ¡aquí está tu solución! ¡Puedes descargar los datos de la web usando Python! ¡Que todo se automatice!
Los datos utilizados para este tutorial se descargaron de la siguiente fuente: https://github.com/owid/covid-19-data/blob/master/public/data/vaccinations/vaccinations.csv.
Después de haber buscado su archivo en la web (puede ser cualquier archivo de cualquier web), lo primero que debe hacer es hacer clic derecho en el archivo y copiar su dirección de enlace como se muestra en la figura a continuación.
Ahora, vaya a su archivo Python y pegue esta dirección de enlace del archivo para leer y descargar el archivo. Para ello, como estamos trabajando con una dirección de enlace, tenemos que importar la librería request
de la librería urllib
library.
#Importing library
from urllib import request
#Reading the file from the link
file_url = r'https://github.com/owid/covid-19-data/blob/master/public/data/vaccinations/vaccinations.csv?raw=true'
La letra r
en el código representa el modo de lectura. Tenga en cuenta que la dirección del enlace debe estar entre comillas (' ').
Ahora, obtendremos el archivo descargado línea por línea y guardado en un archivo de texto (que aún no está creado). Para este propósito, definiremos una función para hacer esto y luego, al final, llamaremos a esta función para obtener los datos.
#Defining a function to download the file
def file_info(url):
#Opening the url file
file_open = request.urlopen(url)
#Reading the file
file_content = file_open.read()
#Converting into string
content = str(file_content)
#Splitting the lines
lines = content.split('\\n')
Observe que el nombre de la función es file_info
, y su entrada se llama url
. Puedes nombrarlos a ambas como prefieras. Sin embargo, si lo hace, ¡no olvide cambiar los nombres correspondientes en las próximas líneas de código!
Una vez definida la función, lo primero que debemos hacer es abrir el archivo desde la web. Para ello se necesita la función request.urlopen
. Luego, para que Python revise todo el archivo y lo lea, se necesita la función read
.
El archivo abierto por Python tiene el formato bit
, que es un formato complejo para trabajar. Por lo tanto, surge la necesidad de convertirlo a un formato string
. Después de hacerlo, debemos separar las líneas del archivo, de lo contrario, todo el contenido del archivo estará en una línea larga.
Ahora que Python puede leer el archivo desde la web, lo guardaremos como un archivo nuevo en el mismo directorio en donde se encuentra nuestro código de Python. ¡Para este propósito, solo necesitamos 4 líneas de código!
#Saving data into a text file
with open('vaccinations.txt', 'w') as output_file:
for line in lines:
save_data = output_file.write(line + '\n')
print(save_data)
Python tiene la posibilidad de 'abrir' un archivo que no existe en modo escritura. El modo de escritura 'w' significa que el archivo de texto que Python acaba de crear está listo para escribirse. En la primera línea, output_file es el nombre de la variable. Es similar a esto:
output_file = open('vaccinations.txt', 'w')
Luego, la segunda línea del código se usa para recorrer la variable lines
, que contiene el contenido de nuestro archivo web. Una vez que Python haya leído todas las líneas del archivo web, lo copiará y lo pegará en el archivo de texto creado usando la función write
y luego lo guardará. Como ya se explicó antes, '\n'
se usa para separar las líneas.
Una vez que creamos el archivo de texto con el contenido del archivo web, solo necesitamos llamar a nuestra función creada anteriormente file_info(url)
.
#Calling the function
file_info(file_url)
Si ejecutamos este código, el archivo de texto creado por Python se encontrará en la misma carpeta que su código de Python.
El código final se verá así:
#Importing library
from urllib import request
#Reading the file from the link
file_url = r'https://github.com/owid/covid-19-data/blob/master/public/data/vaccinations/vaccinations.csv?raw=true'
def file_info(url):
#Opening the url file
file_open = request.urlopen(url)
#Reading the file
file_content = file_open.read()
#Converting into string
content = str(file_content)
#Splitting the lines
lines = content.split('\\n')
#Saving data into a text file
with open('vaccinations.txt', 'w') as output_file:
for line in lines:
save_data = output_file.write(line + '\n')
print(save_data)
#Calling the function
file_info(file_url)
¡Felicidades! ¡Acabas de dar tu primer paso hacia enormes cantidades de datos! ¡Sigue codeando! Para descargar el código completo, haz click aquí.
Vistas: 1
Notificaciones
Recibe los nuevos artículos en tu correo electrónico