获取pathlib时,获取错误:TypeError:invalid file:PosixPath('example.txt')

Fli*_*imm 40 python python-3.x pathlib

我正在使用Python 3的pathlib模块,如下所示:

from pathlib import Path

filename = Path(__file__).parent / "example.txt"
contents = open(filename, "r").read()
Run Code Online (Sandbox Code Playgroud)

但我在某些机器上遇到此错误:

TypeError: invalid file: PosixPath('example.txt')
Run Code Online (Sandbox Code Playgroud)

但是在我的机器上它可以工作.

Fli*_*imm 55

pathlibopen仅在Python 3.6及更高版本中无缝集成.从Python 3.6的发行说明:

内置open()函数已更新为接受os.PathLike对象,osos.path模块中的所有相关函数以及标准库中的大多数其他函数和类一样.

要使它在Python 3.5和Python 3.6中工作,只需将对象转换为字符串:

contents = open(str(filename), "r").read()
Run Code Online (Sandbox Code Playgroud)

  • 或者如果你知道它是一个Path对象:`filename.open()`或更高级的函数,如`filename.read_text()` (2认同)