Python os.path.exists 在具有多个".."的相对路径时失败,但使用绝对路径



我正在执行一个简单的os.path.exists()调用,但对于具有多个..的相对路径,它失败了,而对于绝对路径,它成功了。我测试过,发现相对路径的路径太长。如果我去掉文件名中的字符(在下面的示例中为extra(,它就可以工作了。

下面的例子并不完全是失败的时间长度,只是我面临的问题的例子。

# relative path - too long
os.path.exists(r'........folder1folder2folder3folder4myfilename_extra.txt')  # fails
# removed `extra` at end of filename
os.path.exists(r'........folder1folder2folder3folder4myfilename.txt')  # succeeds
# absolute path
os.path.exists(r'C:Usersalexfolder1folder2folder3folder4myfilename.txt')  # succeeds

有人能解释为什么..的多次使用会导致路径过长,以及是否有解决方法吗。我也不能使用绝对路径。

我通过在每个相对路径前面添加os.path.abspath来解决这个问题。我假设每个..都作为一个完整的路径进行评估。

os.path.exists(os.path.abspath(r'........folder1folder2folder3folder4myfilename_extra.txt')) # now succeeds

相关内容

  • 没有找到相关文章

最新更新