问题标签 [pathlib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
498 浏览

python - 在不解析python中的符号链接的情况下获取绝对路径

有很多在遵循符号链接时解析文件路径的示例,我想在不解析符号链接的情况下获取文件的绝对路径。我认为这是解决方案:

在另一个函数或参数方面我有什么遗漏resolve()吗?

有一个关于使用 os.path.abspath 的答案,但我问的是 Python 3.6 或更好的 pathlib。

0 投票
0 回答
292 浏览

python - 如何使用 pathlib 测试使用目录

我有一个函数可以递归地搜索目录中的 .json 文件。它使用pathlib.

我想对它进行单元测试,所以我需要一种方法来创建带有孩子的假对象,Path这样才能工作。fake_path.iterdir()fake_path.resolve()

理想情况下,我想要这个:

然后让它表现得像普通的 Path 对象。

有没有这样做的图书馆?还是可以pathlib做我想做的事,而我只是瞎了眼?

(我知道我可以只创建临时文件,但我宁愿在单元测试中没有任何 IO。)

0 投票
2 回答
38536 浏览

python - 无法导入路径库

每当我写:

或者

我懂了:

我也尝试命名它os.path

我在 Python 2.7.14

Python 2 中的 pathlib 还是 3 中的 pathlib?如果它不可用,我还能使用什么?

0 投票
2 回答
9668 浏览

python - 如何使用 pathlib 从当前路径的一部分创建新的 Path 对象?

我想用pathlib.

例如,如果您有一个 Path 对象:

如何更改文件名?并获得一条新路径,例如"/home/user/to/some/folder/other_file.dat"

或者更一般地说,我可以更改该路径的一个或多个元素吗?

我可以得到parts路径:

因此,一种解决方法是加入所需的部分,创建一个新字符串,然后创建一个新路径,但我想知道是否有更方便的工具可以做到这一点。

编辑

更准确地说,它是否存在与path.name返回路径的互补部分的等价物:str(path).replace(path.name, "")

0 投票
2 回答
858 浏览

python - Path.resolve() 在 Python 中丢失了相关信息

以下使用 Path() 的代码正在丢失相关信息:

产生这个:

我的相对路径发生了什么?我的理解是 resolve() 应该使它成为绝对路径而不是丢失数据。

0 投票
3 回答
57548 浏览

python - Python pathlib 如果目录不存在则创建目录

如果我想指定一个路径来保存文件并创建该路径中不存在的目录,是否可以在一行代码中使用 pathlib 库来做到这一点?

0 投票
1 回答
178 浏览

python-3.x - 获取匹配子目录名称中的所有文件

我有来自另一个项目的这段代码:

它在整个目录及其子文件夹中查找所有 jpg 文件并对其进行操作。

我有一个目录,其中包含 100 多个“主”文件夹,每个文件夹都有 2 个子文件夹的某种组合 - 我们称它们为“文件夹 A”和“文件夹 B”。主文件夹可以有一个、两个子文件夹或没有这些子文件夹。

我想对“FolderB”子目录中包含的所有 pdf 文件运行一段代码,但忽略主文件夹和“FolderA”文件夹中的所有文件。

有人可以帮我操作上面的代码让我继续吗?

非常感谢!

0 投票
7 回答
44768 浏览

python - PathLib递归删除目录?

有什么方法可以删除 PathLib 模块中的目录及其内容?path.unlink()它只删除一个文件,目录path.rmdir()必须为空。有没有办法在一个函数调用中做到这一点?

0 投票
1 回答
526 浏览

python - 是否可以使用 Python 确保文件名或路径是 Windows 合法的?

我最近压缩了一些由我编写的脚本创建的文件,并将它们发送给使用 Windows 的同事。他无法解压缩存档,因为我的一些文件名包含:在 Windows 上不合法的 a。

去掉 . 是微不足道的:,但是如果在 Windows 路径/文件名中有我不知道的其他字符是非法的怎么办?

我想知道pathlib“纯”路径对象是否会以任何方式标记非法字符,但据我所知,它们并没有:

鉴于我无法轻松访问 Windows 机器进行测试,是否有一种简单的方法来确保 Python 生成的路径/文件名是“Windows 安全的”?

0 投票
1 回答
47 浏览

python - 快速检查列表中的子目录

我有两组路径,第一组可能有 5000 个文件,第二组可能有 10000 个文件。第一组包含在第二组中。我需要检查第二组中的任何条目是否是第一组中任何条目的子目录(即,它是否是第一组中另一个目录中的子目录或文件)。还有一些额外的要求:

  • 不对文件系统进行任何操作,应该只对路径字符串进行操作(如果需要处理符号链接除外)。
  • 平台无关(例如大写/小写,不同的分隔符)
  • 对于表达相同路径的不同方式,它应该是稳健的。
  • 它应该同时处理符号链接及其目标。
  • 有些路径是绝对的,有些是相对的。
  • 这应该尽可能快!

我正在考虑同时获取os.path.abspath()os.path.realpath()获取每个条目,然后将它们与os.path.commonpath([parent]) == os.path.commonpath([parent, child]). 不过,我想不出一个跑得这么快的好方法。或者直接比较字符串是否安全?这会让事情变得容易得多。谢谢!

编辑:我对平台独立性有点不清楚。它应该适用于所有平台,但不会混合使用例如 Windows 和 Unix 风格的路径。