小编Alo*_*ois的帖子

pathlib Path和py.test LocalPath

我已经开始使用了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)

pytest python-3.x pathlib

6
推荐指数
2
解决办法
2043
查看次数

标签 统计

pathlib ×1

pytest ×1

python-3.x ×1