私はPython2.3からPython3.3にプログラムを移植していますが、いくつかのものを更新していますが、実際にファイルに対して最近アクセスされたファイルパスのセットが存在するとクラッシュします。Pythonファイルの存在チェックループがクラッシュする - print文を追加しない限り
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
単一のファイルへのアクセスはうまく機能するため、ループと関係があります。デバッガでループをステップ実行すると、コードは正常に動作しますが、アプリケーションを実行するだけでは、 "python.exeが応答を停止しました"というエラーでクラッシュします。
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
は何でアップしている:
奇妙な部分は、しかし、私はos.path.exists
前にprint文を追加する場合、それは通常のrunthrough上で動作することに持っていますか?私はそれがループの速度対ファイルアクセス時間の何らかの関係を持っていると仮定しています。ゆっくりとステップ実行するとうまく実行できますが、問題は何か分かりません。
おそらくPython 3のバグ:)? – Bharat
これはバグかもしれません。プログラムが何もしなければ、Windowsはそれが応答していないと考えているというより一般的な仮定はありません。しかし、何かを印刷すると、MSはアプリケーションの動作を知っています。 VB.NETでそれが私に起こった。 – refi64
アクセスしているファイルは何ですか?彼らは存在しますか? 「ストーリー」への呼びかけは何をするのでしょうか?実行可能な、実行可能な完全な例を与えることができますか? – BrenBarn