2011-07-22 8 views
1

マイコード:Pythonの予期しないEOF解析中

def getAppHistory(self): 
    path = self.APP_STORAGE + "\\history.dat" 
    if os.path.exists(path): 
     hist_file = open(path, "r") 
     hist_data = hist_file.read() 
    else: 
     hist_file = open(path, "w") 
     hist_data = "[200, \"Empty\", \"You have no device history!\", \"self.Void\"]" 
     hist_file.write(hist_data) 
    self.conn_menu.append(eval(hist_data)) 

エラー:

​​

答えて

2

hist_fileは、あなたがしようとする前に

あなたはhist_dataを印刷する必要があります存在するが空の場合に発生することがありあなたが確かに確認できるように評価してください

あなたが使用する危険性を理解しているeval

0

gnibblerが説明したように、これはファイル(この場合は "history.dat")がすでに存在していても空である場合に発生します。

テストは使ってPythonのV3 IDLEでそれを実行しました:

import os 
def getAppHistory(): 
    path = "C:/test/history.dat" 
    if os.path.exists(path): 
     hist_file = open(path, "r") 
     hist_data = hist_file.read() 
    else: 
     hist_file = open(path, "w") 
     hist_data = "[200, \"Empty\", \"You have no device history!\", \"self.Void\"]" 
     hist_file.write(hist_data) 
    print(eval(hist_data)) 
    hist_file.close() 

が最初外出先で完璧に走りました。しかし、手動で行を削除してファイルを空にすると、同じエラーが表示されます。もう一度、gnibblerが指摘したように、まず最初に "eval"があなたのプロジェクト/仕事に及ぼす欠陥や可能なダウンポイントを見てください。

関連する問題