小编Way*_*hen的帖子

Python文件存在检查循环崩溃 - 除非我添加一个print语句

我正在将一个程序从Python2(不知道使用的确切版本)移植到Python3.3并更新一些东西,但这个循环检查一组最近访问的文件路径是否存在实际文件崩溃.

for index in range(story.recentFiles.GetCount()):
    try:
        if not os.path.exists(story.recentFiles.GetHistoryFile(index)): pass
    except IOError:
        self.RemoveRecentFile(story, index)
        break
Run Code Online (Sandbox Code Playgroud)

访问单个文件工作正常,因此它与循环有关.如果我使用调试器逐步完成循环,代码工作正常,但如果我只是运行应用程序,它会在"python.exe已停止响应"错误时崩溃.

然而,最奇怪的部分必须是,当我在之前添加一个print语句时os.path.exists,它会在常规的runthrough上工作:

for index in range(story.recentFiles.GetCount()):
    try:
        print('test') # Why does printing this make it not crash??
        if not os.path.exists(story.recentFiles.GetHistoryFile(index)): pass
    except IOError:
        self.RemoveRecentFile(story, index)
        break
Run Code Online (Sandbox Code Playgroud)

怎么了?我假设它与循环的速度与文件访问时间或某些东西有某种关系,因为慢慢地步进允许它执行正常,但老实说我不知道​​问题是什么.

python python-3.x

10
推荐指数
1
解决办法
417
查看次数

标签 统计

python ×1

python-3.x ×1