- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经开始使用 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'
str()
每次,我都更一般地看着解决这个问题,但不能。
_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:
raise TypeError(
"argument should be a path or str object, not %r"
% type(a))
return cls._flavour.parse_parts(parts)
def test_subclass(tmpdir):
p = Path(tmpdir) / 'testfile.csv'
TypeError: unsupported operand type(s) for /: 'NoneType' and 'str'
(也尝试过
PosixPath
,结果相同,但不希望特定于 Linux)。
Path
:
import pytest
from pathlib import Path
def add_tmpdir():
from py._path.local import LocalPath
org_attr = '_parse_args'
stow_attr = '_org_parse_args'
def parse_args_localpath(cls, args):
args = list(args)
for idx, a in enumerate(args):
if isinstance(a, LocalPath):
args[idx] = str(a)
return getattr(cls, stow_attr)(args)
if hasattr(Path, stow_attr):
return # already done
setattr(Path, stow_attr, getattr(Path, org_attr))
setattr(Path, org_attr, parse_args_localpath)
add_tmpdir()
def test_monkeypatch_path(tmpdir):
p = Path(tmpdir) / 'testfile.csv'
AttributeError: type object 'Path' has no attribute '_flavour'
(也在猴子修补 PurePath 时)。
Path
:
import pytest
import pathlib
def Path(*args):
from py._path.local import LocalPath
args = list(args)
for idx, a in enumerate(args):
if isinstance(a, LocalPath):
args[idx] = str(a)
return pathlib.Path(*args)
def test_tmpdir_path(tmpdir):
p = Path(tmpdir) / 'testfile.csv'
AttributeError: type object 'Path' has no attribute '_flavour'
最佳答案
如果其他人正在研究 pytest 的 tmpdir
路径与 pathlib.Path
配合得很好:
使用 python 3.6.5
和 pytest 3.2.1
,问题中发布的代码运行良好,无需显式转换为 str
:
from pathlib import Path
def test_tmpdir(tmpdir):
p = Path(tmpdir) / 'testfile.csv'
关于python-3.x - pathlib 路径和 py.test LocalPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40784950/
这是我第一次在这个网站上提问,如果我的问题没有正确布置,请见谅 y@DESKTOP-MQJ3NCT:~/Real-Time-Voice-Cloning$ python demo_toolbox.py
所以我刚刚将 matplotlib 更新到版本 3.0.2 。我可以很好地导入 matplotlib,但是当我尝试 import matplotlib.pyplot 时,我得到: ----------
考虑以下路径: import pathlib path = pathlib.Path(r'C:\users\user1\documents\importantdocuments') 如何从 Path
如果我想指定一个路径来保存文件并创建该路径中不存在的目录,是否可以在一行代码中使用 pathlib 库来完成此操作? 最佳答案 是的,就是Path.mkdir : pathlib.Path('/tmp
有没有办法删除 PathLib 模块中的目录及其内容?使用 path.unlink() 它只删除一个文件,使用 path.rmdir() 目录必须是空的。有没有办法在一个函数调用中做到这一点? 最佳答
我主要使用 pathlib 而不是 os 作为路径,但是有一件事我没能在 pathlib 上工作。例如,如果我需要目录中最新创建的 .csv,我会使用 glob & os import glob im
我正在尝试使用 %userprofile%\desktop 之类的 win 环境变量和 pathlib 来保护不同用户 PC 中的文件。 但我无法让它工作,它一直保存在正在运行的脚本目录中。 impo
给定两个 Python Pathlib 路径,其中一个是另一个(未知深度)的后缀, x = Path("/a/b/c/d/e.ext") y = Path("d/e.ext") 是否有一种“不错”的方
在python3中,对未知(用户输入)文件路径进行操作时,需要支持./r*/*.dat等通配符。计划是使用这样的东西(简化): paths = [] for test in userinputs:
如何从使用 parts 构造的元组获取在 pathlib回到实际的字符串路径? from pathlib import Path p = Path(path) parts_tuple = p.p
python3系列最近添加了一个名为pathlib的面向对象的路径操作库。我希望能够断言子文件是父文件的后代,以避免人们阅读/etc/passwd 等。标准库不提供有关安全使用 pathlib 的任何
我已经使用 setup.py 打包了我的项目,项目文件夹结构如下所示。 api-automation api packagename __init__.py
我正在使用库pathlib,并尝试通过以下方式构建路径。 BASE_DIR = Path(__file__).ancestor(3) secrets_file = BASE_DIR / 'main_a
我开始使用pathlib,并且在很大程度上非常喜欢使用它。我遇到的问题是由于方法而不是函数的性质而对其进行测试。 def test_correct_dir_was_made(self): wi
我想使用相对路径和子进程模块,以便能够运行不同的可执行文件。 为了获取相对路径,在阅读不同的线程之后,我认为 pathlib 模块是最好的选择。 假设我的 python 脚本位于 Windows 的特
我正在创建一个根据类而不同的格式字符串,用于通过通用类方法生成文件名。我使用 Python 3.4+ pathlib.Path 模块进行面向对象的文件 I/O。 在构建此字符串时,缺少路径分隔符,我想
我想用一个额外的构造函数断言子类型pathlib.Path,如下所示 import pathlib class TempDirPath(type(pathlib.Path())): def _
我正在尝试在 Python 中使用相对路径,并且我想将我的 csv 文件与我的 python 代码放在一个单独的文件夹中。 我的 python 程序在以下文件夹中: G:\projects\code
我正在尝试使用 Python 的 pathlib 模块测试程序。使用 os 模块,您过去只需遵循相同的类似 url 的形式即可访问网络驱动器。但出于某种原因,您不能使用 pathlib 执行此操作。或
我的目录结构可能类似于 Data Current A B C Previous A X 在尽可能简单/快
我是一名优秀的程序员,十分优秀!