0

所以我正在用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)

以确保下载目标存在。除了在其中创建 ao3 文件夹,/home/user/Downloads/ 而是在 CWD 中创建一个新~/文件夹,例如/cwd/~/Downloads/ao3

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

4

1 回答 1

1

正如我在评论中所说,makedirs()不会自动处理名为用户主目录的文件夹的扩展,但是您可以通过如下所示~轻松自己完成:os.path.expanduser()

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)
于 2021-06-30T09:47:32.540 回答