gpt4 book ai didi

python os.path.exists 在文件存在时报告 False

转载 作者:太空狗 更新时间:2023-10-30 01:33:49 25 4
gpt4 key购买 nike

您好,有一个应用程序有时会报告文件不存在,即使它确实存在,我正在使用 os.path.exists 并且该文件位于已安装的网络共享上。我在 OSX Yosemite,python 2.7.9 上,我有权访问该文件。这是奇怪的事情。下面的第一个命令报告 False,然后我再次运行它但将文件名中的一个字符更改为小写 (TestVendorid_VerifyLog.txt),再次运行它并报告正确!然后再次使用大写字母再次运行它 (TestVendorId_VerifyLog.txt),它会报告 True!到底是怎么回事?这是非常一致的,因为它大部分时间返回 True,但突然返回 False,然后我可以重复下面的练习。

>>> import os
>>> os.path.exists("/Volumes/platform-deliveries-103_1/TEST/TestVendorId.itmsp/TestVendorId_VerifyLog.txt")
False
>>> os.path.exists("/Volumes/platform-deliveries-103_1/TEST/TestVendorId.itmsp/TestVendorid_VerifyLog.txt")
True
>>> os.path.exists("/Volumes/platform-deliveries-103_1/TEST/TestVendorId.itmsp/TestVendorId_VerifyLog.txt")
True
>>>

更新 1:

当它报告 True 时,我运行了这个:

>>> os.stat("/Volumes/platform-deliveries-103_1/TEST/TestVendorId.itmsp/TestVendorId_VerifyLog.txt")
posix.stat_result(st_mode=33216, st_ino=5351561660274954203, st_dev=771751953L, st_nlink=1, st_uid=504, st_gid=20, st_size=38552, st_atime=1428492003, st_mtime=1428589374, st_ctime=1428589374)

更新 2:

好的,我现在可以重复一遍,这绝对是缓存的事情。我删除了本地 Mac 上的文件 TestVendorId_VerifyLog.txt,然后在另一个工作站上重新创建了该文件(该文件位于网络共享上),然后我在 Mac 上得到了 False。如果我更改 os.path.exists 命令的文件名中的一个字母,它似乎会使 os.path.exists 更努力地查找文件并找到它。所以我需要的是在运行命令之前在 python 中执行“刷新查找器”命令。

最佳答案

os.path.exists 返回 FalseOSError 发生时它试图统计文件。异常被处理并因此被屏蔽。

您应该尝试运行 os.stat(filename) 以查看是否提供有关该问题的更多信息。

关于python os.path.exists 在文件存在时报告 False,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29541644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com