14.3 Fichiers à différents emplacements et utilisation de fichiers CSV
Objectifs d'apprentissage
À la fin de cette section, vous devriez être en mesure de :
- Démontrer comment accéder à des fichiers au sein d'un système de fichiers.
- Démontrer comment traiter un fichier CSV.
Ouvrir un fichier à n'importe quel emplacement
Lorsque seul le nom de fichier est utilisé comme argument de la fonction open(), le fichier doit se trouver dans le même dossier que le fichier Python en cours d'exécution. Ex. : Pour que fileobj = open("file1.txt") dans files.py s'exécute avec succès, le fichier file1.txt doit être situé dans le même dossier que files.py.
Souvent, un programmeur a besoin d'ouvrir des fichiers situés dans des dossiers différents de celui où réside le fichier Python. Un chemin (path) identifie de manière unique l'emplacement d'un dossier sur un ordinateur. Le chemin peut être utilisé avec le nom de fichier pour ouvrir un fichier dans n'importe quel dossier. Ex. : Pour ouvrir un fichier nommé logfile.log situé dans /users/turtle/desktop, on peut utiliser ce qui suit :
fileobj = open("/users/turtle/desktop/logfile.log")
| Système d'exploitation | Emplacement du fichier | Exemple avec la fonction |
|---|---|---|
| Mac |
|
|
| Linux |
|
|
| Windows |
|
|
open(), une barre oblique inverse supplémentaire est alors nécessaire pour que Python comprenne correctement l'emplacement.
Concepts en pratique
Ouvrir des fichiers à différents emplacements
Pour chaque question, supposons que le fichier Python exécutant la fonction open() ne se trouve pas dans le même dossier que le fichier out.txt.
Chaque question indique l'emplacement de out.txt, le type d'ordinateur et le mode souhaité pour l'ouverture du fichier. Choisissez la meilleure option pour ouvrir out.txt.
Travailler avec des fichiers CSV
En Python, les fichiers sont lus et écrits en Unicode par défaut. De nombreux formats de fichiers courants utilisent Unicode, tels que les fichiers texte (.txt), les fichiers de code Python (.py) et d'autres fichiers de code (.c,.java).
Les fichiers de valeurs séparées par des virgules (CSV, .csv) sont souvent utilisés pour stocker des données tabulaires. Ces fichiers stockent des valeurs de cellules sous forme de texte Unicode séparées par des virgules. Les fichiers CSV peuvent être lus à l'aide des méthodes apprises jusqu'ici, comme le montre l'exemple ci-dessous.
\net les cellules sont séparées par des virgules.
Texte brut du fichier :
Title, Author, Pages\n1984, George Orwell, 268\nJane Eyre, Charlotte Bronte, 532\nWalden, Henry David Thoreau, 156\nMoby Dick, Herman Melville, 538
Exemple 14.3
Traitement d'un fichier CSV
"""Processing a CSV file."""
# Open the CSV file for reading
file_obj = open("books.csv")
# Rows are separated by newline \n characters, so readlines() can be used to read in all rows into a string list
csv_rows = file_obj.readlines()
list_csv = []
# Remove \n characters from each row and split by comma and save into a 2D structure
for row in csv_rows:
# Remove \n character
row = row.strip("\n")
# Split using commas
cells = row.split(",")
list_csv.append(cells)
# Print result
print(list_csv)
La sortie du code est :
[['Title', ' Author', ' Pages'], ['1984', ' George Orwell', ' 268'], ['Jane Eyre', ' Charlotte Bronte', ' 532'], ['Walden', ' Henry David Thoreau', ' 156'], ['Moby Dick', ' Herman Melville', ' 538']]
Concepts en pratique
Types de fichiers et fichiers CSV
Pour aller plus loin
Des fichiers tels que les documents Word (.docx) et les documents PDF (.pdf), les formats d'image tels que Portable Network Graphics (PNG, .png) et Joint Photographic Experts Group (JPEG, .jpeg ou .jpg), ainsi que de nombreux autres types de fichiers, sont encodés différemment.
Certains types de fichiers non-Unicode peuvent être lus à l'aide de bibliothèques spécialisées prenant en charge la lecture et l'écriture de différents types de fichiers.
PyPDF est une bibliothèque populaire qui peut être utilisée pour extraire des informations de fichiers PDF.
BeautifulSoup peut être utilisée pour extraire des informations de fichiers XML et HTML. Les fichiers XML et HTML contiennent généralement de l'Unicode dont la structure est définie par l'utilisation de balises entre chevrons <>.
python-docx peut être utilisée pour lire et écrire des fichiers DOCX.
De plus, csv est une bibliothèque intégrée qui peut être utilisée pour extraire des informations de fichiers CSV.
À vous d'essayer
Traitement d'un fichier CSV
Le fichier fe.csv contient les notes obtenues par un groupe d'étudiants à un examen final. Écrivez un programme qui affiche la note moyenne.