我正在执行一个简单的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