Lire un fichier texte ligne par ligne en R

Jesse John 19 septembre 2023
Lire un fichier texte ligne par ligne en R

En programmation R, la lecture de fichiers texte ligne par ligne est une opération courante dans les tâches d’analyse et de manipulation des données. Cet article abordera la méthode couramment utilisée pour lire un fichier texte ligne par ligne en R.

Utiliser la fonction readLines() pour lire un fichier texte ligne par ligne en R

Nous utiliserons la fonction readLines() aussi longtemps que des lignes seront lues. Comme nous ne connaissons pas le nombre de lignes, nous devons savoir quand la fin du fichier est atteinte.

La fonction readLines() renvoie un vecteur de caractères vide character(0) lorsqu’il n’y a plus de lignes dans le fichier.

À ce stade, nous sortirons de la boucle avec un break. Notez que la boucle ne se terminera pas sur les lignes vides, car elles ont des marqueurs de fin de ligne.

Nous utiliserons la fonction identical() à chaque itération de la boucle pour vérifier si la ligne est identique à un character(0).

Si c’est le cas, nous breakons; sinon, nous traitons la ligne. Dans l’exemple, nous l’imprimons.

Selon la documentation, la dernière ligne du fichier texte doit avoir un marqueur de fin de ligne pour que la fonction readLines() fonctionne de manière cohérente.

Tout d’abord, créez un fichier texte d’exemple avec le texte suivant et enregistrez-le avec l’encodage UTF-8 et un nom de fichier approprié (nous devons remplacer le nom de fichier dans le code en conséquence).

The first line.
The second line.
The third line.

Last line.

Dans le code d’exemple, nous ferons ce qui suit.

  • Créer une connexion et l’ouvrir.
  • Boucle sur le fichier, une ligne à la fois, en l’imprimant.
  • Sortir de la boucle lorsque la ligne est un character(0).
  • Fermer la connexion. Une connexion ouverte explicitement doit être fermée explicitement.

Code d’exemple:

# Explicitly create and open a connection.
# REPLACE THE FILE NAME AS PER YOUR FILE.
myCon = file(description = "filename.txt", open="r", blocking = TRUE)

# The position in the connection advances to the next line on each iteration.
# Loop till the line is the empty vector, character(0).
repeat{
  pl = readLines(myCon, n = 1) # Read one line from the connection.
  if(identical(pl, character(0))){break} # If the line is empty, exit.
  print(pl) # Otherwise, print and repeat next iteration.
}

# Explicitly opened connection needs to be explicitly closed.
close(myCon)
rm(myCon) # Removes the connection object from memory.

Sortie:

The first line.
The second line.
The third line.

Last line.

Prenons un autre exemple.

Code d’exemple:

# Specify the path to your text file
file_path <- "your_file.txt"

# Use the readLines function to read the file line by line
# It reads the entire content of the specified file and stores each line as an element in a character vector named lines
lines <- readLines(file_path)

# Loop through the lines and process them
for (line in lines) {
  # Process each line here (e.g., print it)
  cat(line, "\n")
}

Lorsque vous exécutez ce code, il lira le fichier texte ligne par ligne et affichera chaque ligne.

Sortie:

The first line.
The second line.
The third line.

Last line.

N’oubliez pas de remplacer "your_file.txt" par le chemin d’accès réel du fichier texte d’exemple avec lequel vous souhaitez travailler.

Auteur: Jesse John
Jesse John avatar Jesse John avatar

Jesse is passionate about data analysis and visualization. He uses the R statistical programming language for all aspects of his work.