Potion Bottle Icon Manuel d'alchimie du code Potion Bottle Icon

Télécharger et manipuler des fichiers avec R - Vidéo

- 329 mots - Temps de lecture estimé: 2 minutes

Offre de formation

Crystal Ball IconUtiliser des chatbots LLM localement et protéger ses donnéesCrystal Ball Icon

Utilise l'IA sans envoyer les données de ta clientèle sur des serveurs américains. Fais tourner des modèles directement sur ton ordinateur, en toute confidentialité. Conforme à la loi 25.

Réconcilie IA et vie privée — Inscris-toi


Sun Face IconComment télécharger en masse et renommer des fichiers depuis le web avec R ?Sun Face Icon


Ce tutoriel R montre comment télécharger automatiquement des documents depuis des URLs séquentielles, identifier leur type de contenu réel et les renommer avec la bonne extension. En utilisant les librairies tidyverse, stringr et here, le script itère sur une plage d’identifiants et télécharge chaque fichier avec la fonction de téléchargement de R. Un exemple concret : récupérer les rapports mensuels de LifeWorks sur la santé mentale en entreprise et les renommer automatiquement selon leur contenu.

Exemple pratique de téléchargement et manipulation de fichiers avec R, incluant le logo de R et les coordonnées des réseaux sociaux.

Je vous présente aujourd’hui un tutoriel pour télécharger et manipuler des fichiers avec R.

Dans le cadre de la thématique sur la santé mentale que j’ai établie pour le mois de novembre, je cherche des données sur le sujet dans le contexte canadien. L’entreprise LifeWorks publie mensuellement une rapport sur la santé mentale en entreprise.

Cependant, les fichiers sont difficiles à trouver pour les mois passés. Comme les URL ont toutes un format séquentiel, j’utilise le langage R pour télécharger les fichiers joints au site web, identifier le bon format de contenu et les renommer avec la bonne extension.

J’inclus un exemple pratique où je télécharge des documents variés depuis un site web et je renomme les fichiers avec la bonne extension selon leur contenu.
Je fais appel aux librairies tidyverse, stringr et here.

Voici le code source utilisé dans le vidéo. Notez qu’il n’a été testé que sur Linux. Il pourrait fonctionner sur macOS. Cependant, il ne fonctionnera pas sur Windows.

Je recommande de toute façon d’utiliser Linux pour manipuler des fichiers avec R !

###
### Extraction des fichiers joints du site de LifeWorks 
### pour ensuite identifier tous les PDF
### Auteur: François Pelletier
### Date: 30 octobre 2021
###

library("tidyverse")
library("here")

# Création du répertoire

dir.create("./pdf")

# Liste de fichiers

nb <- 1159:1

# Télécharger tous les fichiers

for (i in nb) {
  url <- paste0("https://lifeworks.com/media/",
                i,
                "/download")
  print(url)
  try({
    download.file(url,
                  destfile = paste0("pdf/", i, ".pdf"),
                  method = "libcurl")
  })
  Sys.sleep(0.25)
}

# Déterminer quels fichiers sont des PDF

pdfinfo <- data.frame(pdfnames =
                        list.files(paste0(here::here(),
                                          "/pdf"),
                                   full.names = TRUE))

pdfinfo %>%
  mutate(
    system2.args = paste("-b", pdfnames),
    filetype.raw = system2(
      command = "file",
      args = system2.args,
      stdout = TRUE
    ),
    file.format = str_replace(filetype.raw,
                              "^(\\w+)(?=\\s.*).*",
                              "\\1")
  ) -> pdfinfo2

# Fréquence de chacun des types de fichiers

table(pdfinfo2$file.format)

# Renommer les fichiers avec les bonnes extensions

extfix <- data.frame(
  file.format =
    c("JPEG", "MPEG", "PDF", "PNG", "SVG"),
  file.extens =
    c("jpg", "mp4", "pdf", "png", "svg")
)

pdfinfo2 %>%
  inner_join(extfix,
             by = c("file.format" = "file.format")) %>%
  mutate(newname = str_replace(pdfnames,
                               "^(.*)(?=pdf$)(pdf$)",
                               paste0("\\1",
                                      file.extens))) ->
  pdfinfo3

res.rename <- file.rename(pdfinfo3$pdfnames,
                          pdfinfo3$newname)

Vous avez de nombreux documents et vous aimeriez les transformer en données structurées ? Vous avez un besoin d’extraction de données depuis un site web ? Je peux vous aider !

Offre de service

Moon Phases IconConsultation stratégique IA et vie privée — 2 heures — 490 $Moon Phases Icon

Tu veux intégrer l’IA sans compromettre les données de ta clientèle ? En 2 heures, je t’aide à définir une stratégie IA responsable, basée sur les normes ISO et IEEE.

La consultation inclut un plan d'action détaillé pour mettre en œuvre les recommandations et prioriser les étapes suivantes.

Réserve ta Consultation stratégique
Abonne-toi au fil RSS pour ne rien manquer.

Étiquettes