Python 为什么文件路径被认为是一个目录

Python why is file path considered a directory

我正在开发一个 Django 项目,我想在其中替换服务器上的文件。一种方法是如果文件名已经存在则删除文件并将新文件保存在其位置。

我的问题是我的以 /data.xlsx 结尾的文件路径被认为是一个目录。在 python、os.isfile(path) returns false 和 os.isdir(path) returns true 中,尽管路径是这样的:

path = os.path.normpath(os.path.join(settings.MEDIA_ROOT, name)).replace('\', '/')

其中 returns 类似

"G:/username/path/to/django/project/static/data/data.xlsx"

os.remove(path) returns 一个 OSError 因为路径应该不是文件路径。我检查过,我拥有此文件 (0777) 的所有权限。

我不知道如何让 python 理解这是一个 Excel 文件而不是目录。有人能帮我吗?我没有任何调试想法了。

提前致谢!

路径名不定义某物是文件还是目录。如果您愿意,可以将文件命名为 "/tmp/my/directory" 并将目录命名为 "/tmp/my/file.xls"。同样,python 不会 决定 路径对应的是文件还是目录,它只是检查。如果 python 说文件对应于一个目录,那意味着你的 OS 说它是一个目录。要么你的 OS 被严重搞砸了,要么你实际上有一个名为 path.

的目录

提示:很可能是后者。尝试删除位于 path.

的目录