我正在尝试使用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 :(得分: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