os.path.exists 返回 True,即使 Windows 10 上不存在文件也是如此

os.path.exists returns True even though file doesn't exist on Windows 10

提问人:Jerfov2 提问时间:9/30/2020 最后编辑:Jerfov2 更新时间:9/30/2020 访问量:1317

问:

我在 Windows 10 中的文件上遇到了一个奇怪的问题。我编写了一个 Python 程序,将一些数据写入位于 中的一些缓存文件。我能够调用路径并写入目录中的文件而不会引发任何错误。 返回此路径。但是,当我尝试在文件资源管理器中查看文件时,它们不存在。我导航到 ,但找不到目录。我通过尝试运行命令来确认这一点,该命令失败了。我已经重现了这个问题近 10 次,没有明显的变化。我见过很多人遇到相反的问题(即 在不应该返回的时候返回),但我无法找到与我类似的问题的实例。你们对可能导致此问题的原因有任何见解吗?谢谢!C:\Users\jerfo\AppData\Local\xmr-haystack\xmr-haystack\Cacheos.makedirsos.path.existsTrueC:\Users\jerfo\AppData\Local\xmr-haystackcd C:\Users\jerfo\AppData\Local\xmr-haystack\xmr-haystack\Cacheos.path.existsFalse

Python 版本:3.8.6

操作系统: Windows 10 Home Build 1909

有问题的代码:

import os

cache_dir = 'C:\\Users\\jerfo\\AppData\\Local\\xmr-haystack\\xmr-haystack\\Cache'
file_path = os.path.join(cache_dir, 'cache.json')

os.makedirs(cache_dir, exist_ok=True) # No errors
f = open(file_path, 'w') # No errors
f.write('hello') # No errors
f.close() # Still no errors

print(os.path.exists(cache_dir)) # Prints True, yet the folder doesn't exist
print(os.path.exists(file_path)) # Prints True, yet the file doesn't exist

链接到显示运行中的代码的视频

链接到视频中相同代码演示的屏幕截图(如果不可用)。

python-3.x windows 文件 io

评论

1赞 MattDMo 9/30/2020
请发布您的实际代码,而不是试图描述它。
0赞 Jerfov2 9/30/2020
@MattDMo我添加了它
1赞 Jerfov2 9/30/2020
@deponovo你想要什么?两分钟前,我刚刚在我的机器上运行了该代码,并且已经描述了它的结果。
1赞 Eryk Sun 9/30/2020
你可能正在使用 Microsoft Store 中的 Python 应用分发。用户应用程序数据目录被重定向到应用程序,以便将它们彼此隔离并与系统隔离,并便于卸载它们。
1赞 Eryk Sun 10/1/2020
文档在已知问题中简要讨论了它。有关详细讨论,请参阅了解打包的桌面应用如何在 Windows 上运行

答: 暂无答案