Le descripteur de fichier (fd) est le numéro d'identification utilisé dans le système pour enregistrer de manière unique le fichier actuellement ouvert. fd est un nombre entier.
En plus de l'objet file, Python fournit également des opérations sur fd. L'opération sur fd est de plus bas niveau. Les objets fd et file en Python sont des concepts différents. Comme mentionné lors de l'introduction de l'objet fichier, l'appel de f.fileno() peut obtenir le fd d'un objet fichier, ou vous pouvez encapsuler un objet fichier sur un fd existant : f = os.fdopen(fd).
Certains fds sont alloués à l'avance lors de la création d'un processus :
0 - stdin du processus
1——Stdout du processus
2——Stderr du processus
Le module os en Python fournit la méthode suivante pour fd :
1. Fermer fd
os.close(fd)
2. Copier fd
os.dup(fd)
Renvoyer un nouveau fd1, ce fd1 est copié. Paramètre fd.
3. Copiez fd
os.dup2(fd, fd2)
Copiez fd dans fd2, si fd2 est déjà ouvert, fermez-le d'abord.
4. De fd à l'objet fichier
os.fdopen(fd, mode='r', bufsize=-1)
Renvoie un objet fichier Python encapsulant fd. Les paramètres mode et bufsize correspondent à la fonction open() intégrée. les paramètres ont la même signification.
5. Obtenez divers attributs du fichier à partir de fd
os.fstat(fd)
Renvoyer une instance x de type stat_result, et os.stat(path) Le type renvoyé est le même, sauf que les attributs pertinents du fichier correspondant sont obtenus via un fd.
6. Changer la position actuelle du fichier correspondant à fd
os.lseek(fd, pos, how)
L'effet est le même que f.seek(pos, how), le paramètre how précise le point de référence, il y a trois types au total, ils sont : os.SEEK_SET == 0 (début du fichier), os.SEEK_CUR == 1 (position actuelle) et os.SEEK_END == 2 (fin du fichier).
Il n'existe pas de f.tell() similaire. Ce type de fonction peut utiliser directement fd pour obtenir la position actuelle du fichier. En fait, vous pouvez en implémenter une vous-même en utilisant os.lseek().
os.lseek(fd, 0, os.SEEK_CUR)
7. Ouvrez le fichier et obtenez fd
os.open(file, flags, mode=0777
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!