pythonos.path.exists当文件为

2024-10-01 15:47:45 发布

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

嗨有一个应用程序,有时报告一个文件不存在,即使它存在,我正在使用os.path.exists文件在一个挂载的网络共享上。我使用的是OSX Yosemite,Python2.7.9,我有访问该文件的权限。奇怪的是。下面的第一个命令报告False,然后我再次运行它,但是将文件名中的一个字符改为小写(TestVendorid_VerifyLog.txt),再次运行它,它就会报告True!再运行一次!怎么回事?这是非常一致的,因为它大部分时间都返回True,但是突然返回{},然后我可以重复下面的练习。在

>>> 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时,我运行了以下命令:

^{pr2}$

更新2:

好的,我现在可以重复这个,这绝对是一个缓存的东西。我删除TestVendorId文件_验证日志.txt在本地Mac上,然后在另一个工作站上重新创建该文件(该文件位于网络共享上),然后在Mac上显示为False。如果我更改文件名中的字母os.path.exists命令,它似乎使os.path.exists再仔细看看文件,找到它。所以我需要在运行命令之前在python中使用一个“refreshfinder”命令。在


Tags: 文件pathtest命令txtfalsetrueos
2条回答

当一个OSError发生时,os.path.exists返回{}。异常被处理并因此被屏蔽。在

您应该尝试运行os.stat(filename),看看这是否提供了有关该问题的进一步信息。在

确保文件名中没有\n或任何其他“不可见”字符。在

编辑:在对我自己的一个类似问题进行了几个小时的挖掘之后,我意识到问题出在我的目标文件所在目录的权限错误。请确保您在目录上ls -l检查您正在使用的用户是否具有正确的权限。在

相关问题 更多 >

    热门问题