程序添加空格,以便以后检测不到

时间:2016-06-22 09:39:33

标签: python python-3.x pygame

我正在尝试使用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")

不可能,它永远不会触发!有什么想法吗?

2 个答案:

答案 0 :(得分:0)

这可能是因为data5是Type string,而不是Type int。

尝试使用以下内容将其强制转换为int:

if int(data5) == 5:

答案 1 :(得分:0)

data5 = f.readline()带回5\n而非5

如果您执行data5 = f.readline().replace('\n',''),您的代码将有效(嗯,您需要检查字符串'5'

或者将if语句更改为:if data5.replace('\n','') == '5':

您可以使用其他各种方法来删除\n