我正在尝试用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")
不可能,永远不会触发!有什么想法吗?你知道吗
这可能是因为data5是string类型,而不是int类型
尝试使用以下命令将其强制转换为int:
data5 = f.readline()
带回5\n
而不是5
如果您执行
data5 = f.readline().replace('\n','')
,您的代码将正常工作(您确实需要检查字符串'5'
)或者将if语句改为:
if data5.replace('\n','') == '5':
有许多其他方法可以用来剥离
\n
相关问题 更多 >
编程相关推荐