Hola buenos días. Soy bastante nuevo así que, en primer lugar, muchas gracias por la acogida y perdón por las molestias.
Actualmente, quiero automatizar una tarea partiendo de un Excel en el cual especifico en una columna unos nombres y en una celda concreta una ruta de una url (que es de one drive).
Bien, esa ruta contiene carpetas con archivos dentro y quiero que mi script lea las celdas con los nombres de las carpetas, las busque en la url seleccionada y las descargue en una ruta que yo he especificado.
Bien, he conseguido desarrollar el script que adjunto, pero este no me descarga las carpetas con su contenido, sino un tipo de archivo sin extensión que no puedo abrir con ningún programa. ¿Puede ayudarme?
Gracias y disculpen las molestias.
Actualmente, quiero automatizar una tarea partiendo de un Excel en el cual especifico en una columna unos nombres y en una celda concreta una ruta de una url (que es de one drive).
Bien, esa ruta contiene carpetas con archivos dentro y quiero que mi script lea las celdas con los nombres de las carpetas, las busque en la url seleccionada y las descargue en una ruta que yo he especificado.
Bien, he conseguido desarrollar el script que adjunto, pero este no me descarga las carpetas con su contenido, sino un tipo de archivo sin extensión que no puedo abrir con ningún programa. ¿Puede ayudarme?
Gracias y disculpen las molestias.
Código:
import os
import requests
from openpyxl import load_workbook
from tqdm import tqdm
def download_file(url, destination_folder):
response = requests.get(url, stream=True)
file_size = int(response.headers.get('content-length', 0))
# Extracting file name from URL
file_name = url.split("/")[-1]
file_path = os.path.join(destination_folder, file_name)
with open(file_path, 'wb') as file, tqdm(
desc=file_name,
total=file_size,
unit='iB',
unit_scale=True,
unit_divisor=1024,
) as bar:
for data in response.iter_content(chunk_size=1024):
bar.update(len(data))
file.write(data)
def main():
excel_path = r'C:\Users\ÁlvaroBallesterosLóp\Downloads\Automatización.xlsx'
sheet_name = 'Hoja1'
# Load Excel workbook
workbook = load_workbook(excel_path)
sheet = workbook[sheet_name]
# Get URL from D2
url = sheet['D2'].value
# Get destination folder from D3
destination_folder = sheet['D3'].value
os.makedirs(destination_folder, exist_ok=True)
# Iterate through names in column A starting from A2
for cell in sheet['A'][1:]:
name = cell.value
# Construct the full URL for the current name
full_url = f"{url}/{name}"
# Download the file
download_file(full_url, destination_folder)
# Close the Excel workbook
workbook.close()
print("Archivos descargados satisfactoriamente.")
if __name__ == "__main__":
main()