2016-06-22 7 views
0

私はPythonとPygameでゲームを作ろうとしています。プログラムが空のスペースを追加して、後で正しく検出されないようにする

f event.type == pygame.KEYDOWN: ##########WRITE################ 
     if event.key == pygame.K_w: 
      print("Writing File") 
      with open ("Saves/testListSave.txt","w") as f: 
       f.write("1\n") 
       f.write("2\n") 
       f.write("3\n") 
       f.write("4\n") 
       f.write("5\n") 
       f.write("6\n") 
       f.write("7\n") 
       f.write("8\n") 
       f.write("9\n") 
       f.close() 

この部分はうまく動作します。お互いに番号を書き込むのと同じようにファイルに書き込みます。

1 
2 
3 
4 
5 
6 
7 
8 
9 

ただし、問題が発生します。私は、ファイルを読み込むしようとすると、それは、各ラインの下でこれらの空行を追加します(少なくとも、それはコンソールでそのように見える)

if event.key == pygame.K_t: 
      with open("Saves/testListSave.txt","r") as f: 
       data1 = f.readline() 
       data2 = f.readline() 
       data3 = f.readline() 
       data4 = f.readline() 
       data5 = f.readline() 
       data6 = f.readline() 
       data7 = f.readline() 
       data8 = f.readline() 
       data9 = f.readline() 

       print("print DATA") 
       print(data1) 
       print(data2) 
       print(data3) 
       print(data4) 
       print(data5) 
       print(data6) 
       print(data7) 
       print(data8) 
       print(data9) 


       if data5 == 5: 
        print("data5 = 5") 

これは

if data5 == 5: 
    print("data5 = 5") 

不可能を検出作る、それが引き金ことはありません!何か案は?

+0

「data5」の余分な空白を '.strip'しないのはなぜですか? – jonrsharpe

+0

私はそれを試みましたが、それはエラーを引き起こし続けました私はそれも動作するはずです知っているが、私はちょうどdumされているmabyいつでも働くことを得たしていない:P – cmdtvt

+0

その後、**エラーが**何かを教えてください。 Learn [ask]、これはチュートリアルサービスではありません。 – jonrsharpe

答えて

0

これはおそらく、data5がタイプintではなくタイプstringであるためです。

すると、次を使用してint型にキャストしてください:

if int(data5) == 5: 
+0

これはありがとう、これはpefectly動作します! – cmdtvt

+0

いつでも!がんばろう。 :) – AbrahamB

0

data5 = f.readline()は、あなたが行う場合はdata5 = f.readline().replace('\n','')あなたのコードが動作するバック5\nなく5

をもたらします(まあ、あなたがチェックする必要があります文字列'5'

if文を次のように変更します。if data5.replace('\n','') == '5':

これ以外にもさまざまな方法があります。\n

+0

もし私が '5 \ n'をしたら正しいと分かったら、5として空きスペースに戻ってきますか? – cmdtvt

関連する問題