web-dev-qa-db-fra.com

Lors de l'utilisation de pathlib, obtention d'une erreur: TypeError: fichier non valide: PosixPath ('example.txt')

J'utilise le module Python 3 pathlib , comme ceci:

from pathlib import Path

filename = Path(__file__).parent / "example.txt"
contents = open(filename, "r").read()

Mais je reçois cette erreur sur certaines machines:

TypeError: invalid file: PosixPath('example.txt')

Mais sur ma machine ça marche.

45
Flimm

pathlib s'intègre parfaitement avec open uniquement dans Python 3.6 et versions ultérieures. De Notes de version de Python 3.6 :

La fonction open() intégrée a été mise à jour pour accepter os.PathLike objets, comme toutes les fonctions pertinentes dans les os et os.path modules et la plupart des autres fonctions et classes de la bibliothèque standard.

Pour le faire fonctionner dans Python 3.5 et Python 3.6, convertissez simplement l'objet en chaîne:

contents = open(str(filename), "r").read()
64
Flimm