问题标签 [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 投票
1 回答
563 浏览

python - 使用父目录步骤创建相对路径

以防万一我错过了什么,在我为问题实施自己的解决方案之前。

在我们的构建系统中,我总是必须使用相对路径来保持所有项目的可移动性。因此,构建脚本应该生成文件的相对路径。

然而,python 库中似乎没有可以处理父路径步骤的函数,如下例所示:

我想获得file_b相对于的路径dir_a。因此,如果我从 开始dir_a,相对路径将指向file_b

最好的结果是:

举这个稍微复杂一点的例子:

最好的结果是:

使用这些方法的两个示例.relative_to都不起作用并引发异常:

os.path.relpath方法按预期工作,但返回一个字符串而不是一个Path对象:

所以我想知道我是否在这里遗漏了什么......

如何使用 Path 对象获取与父目录的相对路径?

为什么对象的relative_to实现Path不起作用?

0 投票
2 回答
29979 浏览

python - 将 WindowsPath 转换为字符串

我收到错误

我认为这是因为当我需要 glob 一个字符串时,我试图 glob 一个 Windows 文件路径。有没有一种方法可以将 WindowsPath 转换为字符串,以便可以将所有文件合并到一个列表中?

0 投票
1 回答
3149 浏览

python - pathlib iterdir() 的问题

对于我的项目,我从文本文件中读取了一行输入,内容为“DC:/Test/Project1”。D 表示打印目录中的文件,忽略子目录。“R”表示打印目录和每个子目录中的文件。具体目录跟在空格后面的字母后面。该目录包含一些 python 文件。

当我运行此代码时,我收到错误消息

以前,这个完全相同的代码更早地工作,它也可以在其他计算机上工作。我尝试重新安装 pathlib 但没有成功。我在 python 3.6.2 上。

0 投票
0 回答
1086 浏览

python - Python Path.rglob 在遇到未经许可的文件夹时因网络错误而失败

我是 Python 新手,一直在使用这个网站作为参考……谢谢你所做的一切,我学到了很多东西。第一个问题:

我正在使用 Path.rglob() 运行基本的递归文件搜索。当它遇到一个无权访问的文件夹时,我遇到了错误。我在 Windows 上运行 Python 3.7 并连接到网络驱动器上的 Windows 共享。

这是我的代码:

它运行良好,直到我遇到我无权访问的文件夹,然后出错:

我搜索并发现似乎已修复的 Pathlib 的以下问题,但是在我的情况下错误是不同的,因为它指向“意外的网络错误”而不是权限。

https://bugs.python.org/issue24120

我确认这确实是一个权限错误,作为我登录的用户,我无权访问该回收文件夹。我编辑了该文件夹的权限并授予自己访问权限,之后代码运行良好。

我知道我可以使用 oswalk,因为它忽略了这些……但我认为给出了上面链接到的错误修复,path.glob 也应该如此,但它没有。此外,使用 path.rglob() 非常流畅,只需一行代码并且速度很快(并不是说 oswalk 不会那么快)。

任何帮助表示赞赏。

0 投票
1 回答
776 浏览

python - 使用 Pathlib 搜索特定文件夹

我正在尝试找到一个包含一堆适合文件的特定文件夹。我目前的代码是

因此,如果 pathlib 找到了错误的文件,用户会这样说,并且假设代码将通过并再次搜索,直到找到另一个包含适合文件夹的文件。我陷入了无限循环,因为它只走一条路。

0 投票
0 回答
198 浏览

python - Python:将目录 c:\FLASH 的内容复制到所有连接的 USB 闪存驱动器

我需要将一些文档、文件夹和文件从本地驱动器上的一个目录复制到所有连接的 USB 闪存驱动器。

当目标也是文件夹时,一切正常,但如果目标是 USB 驱动器根目录,那么我总是会收到错误消息:

错误:[WinError 5] 拒绝访问:'E:\\'

我认为问题出在第二个反斜杠上。

0 投票
0 回答
328 浏览

python-3.x - 无法使用 Python pathlib 在特定文件夹中创建新目录

我已经在互联网和文档上研究了大约两天,现在试图弄清楚这一点。我正在尝试创建一个脚本,该脚本在运行时会提示输入一个字符串,然后使用该字符串在特定目录中创建一个文件夹。我已经对其进行了很多更改,遇到了许多不同的错误,当我没有收到错误时,什么也没有发生,或者文件夹是在我想要的目录之外创建的。

我终于转向堆栈溢出;请指导手会非常有帮助。

0 投票
0 回答
505 浏览

python - 正则表达式 Windows 路径不完整转义 '\U'

我有一个可以在 windows 和 linux 系统上运行的程序。我使用的一个函数切断了路径的一些根,并给我留下了相对路径。

它在Linux下工作,但在Windows下我得到

不完全转义 \U

windows 路径看起来像C:\Users\....

处理这个问题的最佳方法是什么?换成 可以\\\

0 投票
1 回答
279 浏览

python - os.open 不创建具有给定权限模式的文件

当尝试使用 os.open 以 777 模式打开文件时(意味着允许一切) -

它在没有写权限的情况下创建文件,如下所示 -

当尝试使用 chmod("/tmp/lol", 0o777) 时,文件获得了正确的权限:

为什么 os.open 不能按预期工作?
有没有办法以 777 模式创建文件(如果文件存在,它只会更改权限..(因为我尝试了 pathlib.Path.touch))?

0 投票
3 回答
10625 浏览

python - 如何替换 Python pathlib.Path 中的子字符串?

有没有一种简单的方法可以pathlib.Path在 Python 中替换对象中的子字符串?pathlib模块在很多方面都比将路径存储为 astr和 usingos.pathglob.glob(内置于pathlib. 但是我经常使用遵循模式的文件,并且经常替换路径中的子字符串来访问其他文件:

以前我可以这样做:

pathlib可以用方法替换文件扩展名with_suffix(),但只接受扩展名作为有效的后缀。解决方法是:

转换为字符串进行替换并重新转换为Path对象似乎很费力。假设我从来没有 的字符串形式的副本img_file_path,并且必须根据需要转换类型。