我已经开始使用了pathlib.Path一段时间,我喜欢使用它.现在我已经习惯了,我已经变得草率,忘记了参与str.
此使用时经常发生tox+ py.test基于临时目录tmpdir(这是一个py._path.local.LocalPath):
from pathlib import Path
import pytest
def test_tmpdir(tmpdir):
p = Path(tmpdir) / 'testfile.csv'
Run Code Online (Sandbox Code Playgroud)
我不是str()每次都插入,而是更普遍地解决这个问题,但不能.
首先,我尝试使自己的Path类具有适应性_parse_args:
import pytest
from py._path.local import LocalPath
from pathlib import Path, PurePath
def Path(Path):
@classmethod
def _parse_args(cls, args):
parts = []
for a in args:
if isinstance(a, PurePath):
parts += a._parts
elif isinstance(a, str):
# Force-cast str subclasses to str (issue #21127)
parts.append(str(a))
elif isinstance(a, LocalPath):
parts.append(str(a))
else: …Run Code Online (Sandbox Code Playgroud)