即使文件在Windows 10上不存在,os.path.exists仍返回True

2024-10-03 02:45:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Windows 10中的文件有一个奇怪的问题。我编写了一个Python程序,将一些数据写入位于C:\Users\jerfo\AppData\Local\xmr-haystack\xmr-haystack\Cache中的一些缓存文件。我能够在路径上调用os.makedirs,并写入目录中的文件,而不会引发任何错误os.path.exists返回此路径的True。但是,当我试图在文件资源管理器中查看文件时,它们不在那里。我导航到C:\Users\jerfo\AppData\Local\,但找不到xmr-haystack目录。我通过尝试运行命令cd C:\Users\jerfo\AppData\Local\xmr-haystack\xmr-haystack\Cache确认了这一点,但失败了。我已经重复这个问题近10次,没有明显的变化。我见过许多人有相反的问题(即os.path.exists返回False,而它本不应该返回),但我没有找到一个类似于我的问题的实例。你们是否都对造成这个问题的原因有任何见解?谢谢大家!

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

Link to video显示正在运行的代码

Link to screenshot视频中的相同代码演示,如果不可用


Tags: 文件pathtruecacheoslocaldirexists