gpt4 book ai didi

python - 如果文件名包含单引号/撇号,为什么我的路径会失败?

转载 作者:行者123 更新时间:2023-11-28 17:11:01 25 4
gpt4 key购买 nike

这里的文件存在,100%:

path = "~/Music/Youtube_dl/Some Artist - 'On + Off'.m4a"
assert os.path.exists(path)

但是以上总是失败。

如果我将我的实际文件名更改为 test_file.m4a 并执行:

path = "~/Music/Youtube_dl/test_file.m4a"
assert os.path.exists(path)

一切正常。

所以问题是 100% 在文件名中。但是,我无法解决它。我试过在字符串前加上一个 u 和各种其他解决方案,但似乎都无济于事。

注意:我从外部来源获取文件名,但无法控制其中一些文件名中包含单引号/引号的事实。

最佳答案

~ 是一个 shell 结构,python 对此一无所知。甚至 os.path.exists('~') 也会失败。假设它是导出的,我们可以使用环境变量HOME:

import os
import os.path
path = "~/Music/Youtube_dl/Some Artist - 'On + Off'.m4a"

path = path.replace('~', os.environ['HOME'])
assert os.path.exists(path)

您可以使用 os.path.expanduser 的替代方案(这是相当便携的):

import os.path
path = "~/Music/Youtube_dl/Some Artist - 'On + Off'.m4a"

path = os.path.expanduser(path)
assert os.path.exists(path)

关于python - 如果文件名包含单引号/撇号,为什么我的路径会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47472623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com