【发布时间】:2017-02-02 12:43:30
【问题描述】:
请考虑以下代码:
def readPath(path):
content = None
if os.path.isfile(path):
f = open(path,"rb")
content = f.read()
f.close()
return content
相对于这个:
def readPath(path):
content = None
try:
f = open(path,"rb")
content = f.read()
f.close()
except:
pass
return content
鉴于 def 被连续调用很多次(数百到数千次),大部分使用有效路径(表示文件系统上的实际文件)但有时使用不存在的路径,哪个版本更有效?在打开文件之前检查条件是否比设置尝试块慢?
【问题讨论】:
-
您可以使用
time模块和time.time()函数分别尝试并根据您的具体配置自行测试 -
@vishes_shell 刚刚从该副本重新打开
-
@AnttiHaapala:为什么?
-
@AnttiHaapala:这是关于速度的;一条评论就足以指向 Race-condition creating folder in Python 或 How to check whether a file exists using Python? 或有关比赛条件的类似帖子。
-
@MartijnPieters 好的,race condition creating folder 与打开文件不同,是的,How to check whether a file exists using Python? 在顶级答案中根本没有谈论竞争条件,而且欺骗目标 没有甚至谈论性能。
标签: python