尝试在下载中创建一个新目录完成在 cwd 中创建一个新的“~”

attempt to creat a new directory in Downloads finishes to creating a new "~" in the cwd

所以我正在 python 为自己编写一个脚本,以便从 Ao3 下载作品。 我有这个安装文件

{
    "username": "username",
    "password": "password",
    "downloadsPath": "~/Downloads/ao3",
    "format": "epub"
}

我的问题是下载路径变量。 在我的凭据中,我执行以下操作:

def main():
    setup = openJson(os.path.join(os.path.dirname(__file__), "setup.json"))
    os.makedirs(setup["downloadsPath"], exist_ok=True)

确保下载目标存在。 除了在 /home/user/Downloads/ 中创建 ao3 文件夹之外 它在 CWD 中创建了一个新的 ~/ 文件夹,类似于 /cwd/~/Downloads/ao3

我不知道它为什么开始这样做,因为在我开始执行脚本的其余部分之前,一切都很好,但是在处理脚本一天后,这种行为开始了。

正如我在评论中所说,makedirs() 不会自动将名为 ~ 的文件夹扩展到用户的主目录,但是您可以通过 [=16= 自己轻松完成] 如下图:

import os

setup = {
    "username": "username",
    "password": "password",
    "downloadsPath": "~/Downloads/ao3",
    "format": "epub"
}

downloadsPath = os.path.expanduser(setup["downloadsPath"])
print(downloadsPath)
os.makedirs(downloadsPath, exist_ok=True)

您也可以使用面向对象的 pathlib 模块(我强烈推荐学习和使用)来做类似的事情:

from pathlib import Path

downloadsPath = Path(setup["downloadsPath"]).expanduser()
print(downloadsPath)
downloadsPath.mkdir(parents=True, exist_ok=True)