Entrées/Sorties de fichiers Python
Ce chapitre ne couvre que toutes les fonctions d'E/S de base. Pour plus de fonctions, veuillez consulter la documentation standard de Python.
Affichage à l'écran
La façon la plus simple de produire une sortie consiste à utiliser l'instruction print, à laquelle vous pouvez passer zéro ou plusieurs expressions séparées par des virgules. Cette fonction convertit les expressions que vous passez en une expression de chaîne et écrit le résultat sur la sortie standard comme suit :
#!/usr/bin/python # -*- coding: UTF-8 -*- print "Python 是一个非常棒的语言,不是吗?"
Le résultat suivant s'affichera sur votre écran standard :
Python 是一个非常棒的语言,不是吗?
Lecture de l'entrée clavier
Python fournit deux fonctions intégrées pour lire une ligne de texte depuis l'entrée standard, qui correspond par défaut au clavier. Comme suit :
- raw_input
- input
Fonction raw_input
La fonction raw_input([prompt]) lit une ligne depuis l'entrée standard et renvoie une chaîne (avec le saut de ligne final supprimé) :
#!/usr/bin/python
# -*- coding: UTF-8 -*-
str = raw_input("请输入:")
print "你输入的内容是: ", str
Cela vous invitera à saisir n'importe quelle chaîne, puis affichera la même chaîne à l'écran. Lorsque je saisis « Hello Python! », sa sortie est la suivante :
请输入:Hello Python! 你输入的内容是: Hello Python!
Fonction input
input([prompt])et la fonctionraw_input([prompt])Les fonctions sont essentiellement similaires, mais input peut recevoir une expression Python en entrée et renvoyer le résultat de l'opération.
#!/usr/bin/python
# -*- coding: UTF-8 -*-
str = input("请输入:")
print "你输入的内容是: ", str
Cela produira des résultats correspondant à l'entrée comme suit :
请输入:[x*5 for x in range(2,10,2)] 你输入的内容是: [10, 20, 30, 40]
Ouverture et fermeture de fichiers
Maintenant que vous pouvez lire depuis et écrire vers l'entrée et la sortie standard. Voyons maintenant comment lire et écrire de vrais fichiers de données.
Python fournit par défaut les fonctions et méthodes nécessaires aux opérations de base sur les fichiers. Vous pouvez utiliser l'objet fichierfilepour effectuer la plupart des opérations sur les fichiers.
Fonction open
Vous devez d'abord ouvrir un fichier à l'aide de la fonction intégrée open() de Python pour créer un objet fichier, puis les méthodes appropriées peuvent être appelées pour le lire et y écrire.
Syntaxe :
file object = open(file_name [, access_mode][, buffering])
Les détails de chaque paramètre sont les suivants :
- file_name : La variable file_name est une valeur de type chaîne qui contient le nom du fichier auquel vous souhaitez accéder.
- access_mode : access_mode détermine le mode d'ouverture du fichier : lecture seule, écriture, ajout, etc. Consultez la liste complète de toutes les valeurs possibles ci-dessous. Ce paramètre est facultatif, et le mode d'accès au fichier par défaut est lecture seule (r).
- buffering : Si buffering est défini sur 0, aucune mise en mémoire tampon n'est effectuée. Si buffering est défini sur 1, les lignes sont mises en mémoire tampon lors de l'accès aux fichiers. Si buffering est défini sur un entier supérieur à 1, il indique la taille de la mémoire tampon de la zone de mise en mémoire tampon. Si une valeur négative est utilisée, la taille de la mémoire tampon est celle par défaut du système.
Liste complète des modes d'ouverture de fichiers :
| Mode | Description |
|---|---|
| t | Mode texte (par défaut). |
| x | Mode écriture, crée un nouveau fichier ; si le fichier existe déjà, une erreur sera signalée. |
| b | Mode binaire. |
| + | Ouvre un fichier pour mise à jour (en lecture et en écriture). |
| U | Mode de nouvelle ligne universel (non recommandé). |
| r | Ouvre le fichier en mode lecture seule. Le pointeur de fichier sera placé au début du fichier. C'est le mode par défaut. |
| rb | Ouvre un fichier au format binaire en lecture seule. Le pointeur de fichier sera placé au début du fichier. C'est le mode par défaut. Généralement utilisé pour les fichiers non textuels tels que les images, etc. |
| r+ | Ouvre un fichier en lecture et en écriture. Le pointeur de fichier sera placé au début du fichier. |
| rb+ | Ouvre un fichier au format binaire en lecture et en écriture. Le pointeur de fichier sera placé au début du fichier. Généralement utilisé pour les fichiers non textuels tels que les images, etc. |
| w | Ouvre un fichier en écriture seule. Si le fichier existe déjà, il ouvre le fichier et commence l'écriture depuis le début, ce qui signifie que le contenu d'origine sera supprimé. Si le fichier n'existe pas, un nouveau fichier est créé. |
| wb | Ouvre un fichier au format binaire en écriture seule. Si le fichier existe déjà, il ouvre le fichier et commence l'écriture depuis le début, ce qui signifie que le contenu d'origine sera supprimé. Si le fichier n'existe pas, un nouveau fichier est créé. Généralement utilisé pour les fichiers non textuels tels que les images, etc. |
| w+ | Ouvre un fichier en lecture et en écriture. Si le fichier existe déjà, il l'ouvre et effectue les modifications depuis le début, ce qui signifie que le contenu d'origine sera supprimé. Si le fichier n'existe pas, un nouveau fichier est créé. |
| wb+ | Ouvre un fichier au format binaire en lecture et en écriture. Si le fichier existe déjà, il l'ouvre et effectue les modifications depuis le début, ce qui signifie que le contenu d'origine sera supprimé. Si le fichier n'existe pas, un nouveau fichier est créé. Généralement utilisé pour des fichiers non texte tels que des images, etc. |
| a | Ouvre un fichier en ajout. Si le fichier existe déjà, le pointeur de fichier sera placé à la fin du fichier. Autrement dit, le nouveau contenu sera écrit après le contenu existant. Si le fichier n'existe pas, un nouveau fichier est créé pour l'écriture. |
| ab | Ouvre un fichier au format binaire en ajout. Si le fichier existe déjà, le pointeur de fichier sera placé à la fin du fichier. Autrement dit, le nouveau contenu sera écrit après le contenu existant. Si le fichier n'existe pas, un nouveau fichier est créé pour l'écriture. |
| a+ | Ouvre un fichier en lecture et en écriture. Si le fichier existe déjà, le pointeur de fichier sera placé à la fin du fichier. Le fichier sera en mode ajout lorsqu'il est ouvert. Si le fichier n'existe pas, un nouveau fichier est créé pour la lecture et l'écriture. |
| ab+ | Ouvre un fichier au format binaire en ajout. Si le fichier existe déjà, le pointeur de fichier sera placé à la fin du fichier. Si le fichier n'existe pas, un nouveau fichier est créé pour la lecture et l'écriture. |
Le diagramme suivant résume bien ces modes :

| Mode | r | r+ | w | w+ | a | a+ |
|---|---|---|---|---|---|---|
| read | + | + | + | + | ||
| write | + | + | + | + | + | |
| Créez | + | + | + | + | ||
| Écraser | + | + | ||||
| Pointeur au début | + | + | + | + | ||
| Pointeur à la fin | + | + |
Attributs de l'objet fichier
Une fois qu'un fichier est ouvert, vous disposez d'un objet fichier et pouvez obtenir diverses informations sur le fichier.
Voici une liste de tous les attributs liés à l'objet fichier :
| Attribut | Description |
|---|---|
| file.closed | Renvoie true si le fichier a été fermé, sinon renvoie false. |
| file.mode | Renvoie le mode d'accès du fichier ouvert. |
| file.name | Renvoie le nom du fichier. |
| file.softspace | Si, après une impression avec print, un caractère espace doit suivre, renvoie false. Sinon, renvoie true. |
L'exemple suivant :
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 打开一个文件
fo = open("foo.txt", "w")
print "文件名: ", fo.name
print "是否已关闭 : ", fo.closed
print "访问模式 : ", fo.mode
print "末尾是否强制加空格 : ", fo.softspace
L'exemple ci-dessus produit le résultat suivant :
文件名: foo.txt 是否已关闭 : False 访问模式 : w 末尾是否强制加空格 : 0
méthode close()
La méthode close() d'un objet File vide toutes les informations encore non écrites dans le tampon et ferme le fichier, après quoi aucune écriture supplémentaire ne peut être effectuée.
Lorsque la référence d'un objet fichier est réaffectée à un autre fichier, Python ferme le fichier précédent. C'est une bonne habitude de fermer les fichiers à l'aide de la méthode close().
Syntaxe :
fileObject.close()
Exemple :
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 打开一个文件
fo = open("foo.txt", "w")
print "文件名: ", fo.name
# 关闭打开的文件
fo.close()
L'exemple ci-dessus produit le résultat suivant :
文件名: foo.txt
Lecture et écriture de fichiers :
L'objet fichier fournit une série de méthodes qui facilitent notre accès aux fichiers. Voyons comment utiliser les méthodes read() et write() pour lire et écrire des fichiers.
méthode write()
La méthode write() peut écrire n'importe quelle chaîne dans un fichier ouvert. Il est important de noter que les chaînes Python peuvent être des données binaires, pas seulement du texte.
La méthode write() n'ajoute pas de caractère de nouvelle ligne ('\n') à la fin de la chaîne :
Syntaxe :
fileObject.write(string)
Ici, le paramètre passé est le contenu à écrire dans le fichier ouvert.
Exemple :
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 打开一个文件
fo = open("foo.txt", "w")
fo.write( "www.example.com!\nVery good site!\n")
# 关闭打开的文件
fo.close()
La méthode ci-dessus créera un fichier foo.txt, y écrira le contenu reçu, puis fermera le fichier. Si vous ouvrez ce fichier, vous verrez le contenu suivant :
$ cat foo.txt www.example.com! Very good site!
méthode read()
La méthode read() lit une chaîne à partir d'un fichier ouvert. Il est important de noter que les chaînes Python peuvent être des données binaires, pas seulement du texte.
Syntaxe :
fileObject.read([count])
Ici, le paramètre passé est le nombre d'octets à lire depuis le fichier ouvert. Cette méthode commence la lecture au début du fichier. Si count n'est pas passé, elle essaiera de lire autant de contenu que possible, probablement jusqu'à la fin du fichier.
Exemple :
Ici, nous utilisons le fichier foo.txt créé ci-dessus.
Exemple
# -*- coding: UTF-8 -*-
# Ouvrir un fichier
fo = open("foo.txt", "r+")
str = fo.read(10)
print "La chaîne lue est : ", str
# Fermer le fichier ouvert
fo.close()
L'exemple ci-dessus produit le résultat suivant :
读取的字符串是 : www.example
Positionnement dans le fichier
La méthode tell() indique la position actuelle dans le fichier. En d'autres termes, la prochaine lecture ou écriture se produira ce nombre d'octets après le début du fichier.
La méthode seek(offset[, from]) modifie la position actuelle dans le fichier. La variable offset indique le nombre d'octets à déplacer. La variable from spécifie la position de référence à partir de laquelle commencer à déplacer les octets.
Si from est défini sur 0, cela signifie que le début du fichier est utilisé comme position de référence pour déplacer les octets. S'il est défini sur 1, la position actuelle est utilisée comme position de référence. S'il est défini sur 2, alors la fin du fichier sera utilisée comme position de référence.
Exemple :
Utilisez le fichier foo.txt que nous avons créé ci-dessus.
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 打开一个文件
fo = open("foo.txt", "r+")
str = fo.read(10)
print "读取的字符串是 : ", str
# 查找当前位置
position = fo.tell()
print "当前文件位置 : ", position
# 把指针再次重新定位到文件开头
position = fo.seek(0, 0)
str = fo.read(10)
print "重新读取字符串 : ", str
# 关闭打开的文件
fo.close()
La sortie de l'exemple ci-dessus est :
读取的字符串是 : www.example 当前文件位置 : 10 重新读取字符串 : www.example
Renommer et supprimer des fichiers
Le module os de Python fournit des méthodes qui vous aident à effectuer des opérations de traitement de fichiers, telles que le renommage et la suppression de fichiers.
Pour utiliser ce module, vous devez d'abord l'importer, puis vous pouvez appeler diverses fonctions associées.
méthode rename()
La méthode rename() nécessite deux paramètres : le nom du fichier actuel et le nouveau nom de fichier.
Syntaxe :
os.rename(current_file_name, new_file_name)
Exemple :
L'exemple suivant renommera un fichier existant, test1.txt.
#!/usr/bin/python # -*- coding: UTF-8 -*- import os # 重命名文件test1.txt到test2.txt. os.rename( "test1.txt", "test2.txt" )
méthode remove()
Vous pouvez utiliser la méthode remove() pour supprimer des fichiers, et vous devez fournir le nom du fichier à supprimer en tant que paramètre.
Syntaxe :
os.remove(file_name)
Exemple :
L'exemple suivant supprimera un fichier existant, test2.txt.
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
# 删除一个已经存在的文件test2.txt
os.remove("test2.txt")
Répertoires dans Python :
Tous les fichiers sont contenus dans différents répertoires, mais Python peut les gérer facilement. Le module os dispose de nombreuses méthodes qui peuvent vous aider à créer, supprimer et modifier des répertoires.
méthode mkdir()
Vous pouvez utiliser la méthode mkdir() du module os pour créer de nouveaux répertoires dans le répertoire actuel. Vous devez fournir un paramètre contenant le nom du répertoire à créer.
Syntaxe :
os.mkdir("newdir")
Exemple :
L'exemple suivant créera un nouveau répertoire, test, dans le répertoire actuel.
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
# 创建目录test
os.mkdir("test")
méthode chdir()
Vous pouvez utiliser la méthode chdir() pour changer le répertoire courant. Le paramètre requis par la méthode chdir() est le nom du répertoire que vous souhaitez définir comme répertoire courant.
Syntaxe :
os.chdir("newdir")
Exemple :
L'exemple suivant accédera au répertoire "/home/newdir".
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
# 将当前目录改为"/home/newdir"
os.chdir("/home/newdir")
Méthode getcwd()
La méthode getcwd() affiche le répertoire de travail courant.
Syntaxe :
os.getcwd()
Exemple :
L'exemple suivant donne le répertoire courant :
#!/usr/bin/python # -*- coding: UTF-8 -*- import os # 给出当前的目录 print os.getcwd()
Méthode rmdir()
La méthode rmdir() supprime un répertoire, et le nom du répertoire est passé en paramètre.
Avant de supprimer ce répertoire, tout son contenu doit d'abord être effacé.
Syntaxe :
os.rmdir('dirname')
Exemple :
Voici un exemple de suppression du répertoire "/tmp/test". Le nom complet du répertoire doit être fourni, sinon le répertoire sera recherché dans le répertoire courant.
#!/usr/bin/python # -*- coding: UTF-8 -*- import os # 删除”/tmp/test”目录 os.rmdir( "/tmp/test" )
Méthodes liées aux fichiers et aux répertoires
Les objets File et OS fournissent de nombreuses méthodes pour manipuler des fichiers et des répertoires. Vous pouvez cliquer sur les liens ci-dessous pour voir les détails :
- Méthodes de l'objet File: L'objet File fournit une série de méthodes pour manipuler des fichiers.
- Méthodes de l'objet OS: Fournit une série de méthodes pour gérer des fichiers et des répertoires.