python从文件中删除信息并编写新信息

时间:2016-08-19 05:01:58

标签: python-3.x

好的,我已经尝试过研究这个话题,但这很令人困惑,我不确定这是否是我想要的。无论如何,我正在观看一个关于python pygame游戏的管教程。我完成了视频,并没有展示如何制作高分的东西,而不仅仅是特定游戏的得分。所以我试着在进入游戏代码并真正做到这一点之前掌握这个概念。所以我希望能够创建该文件,我会运行一次,然后我将删除写代码并保留读取代码。所以我创建了文件,这是我现在的代码。

def highscore():
    question=int(input("What is 5+5=?:"))
    if question==10:
        highread=open('high.txt', 'r')
        text=highread.read()
        if text==1:
            highread.close()
            high=open('high.txt', 'w')
            high.write('2\n')
            high.close()
            highread=open('high.txt', 'r')
            text=highread.read()
            print("Your new score of", text)
            highread.close()
        highread.close()
    else:
        print("Wrong!")
highscore()

我很确定该文件现在有“1”。所以我希望现在能够制作一个“2”代表有人击败高分,因此文件需要更新。它不打印新结果,所以我知道有些问题。怎么了?没有错误消息,但它没有做我想要的,也就是打印数字2.我顺便使用python 3.4.3。提前谢谢。

1 个答案:

答案 0 :(得分:0)

问题出在你的if条件中。这里text是字符串变量。如果要查看字符串是否包含特定的子字符串/字符,则应使用find()返回字符串中的子字符串/字符索引(如果找到),如果未找到则返回负值。 试试这个:

def highscore():
question=int(input("What is 5+5=?:"))
if question==10:
    highread=open('high.txt', 'r')
    text=highread.read()
    if len(text)>0:
        highread.close()
        high=open('high.txt', 'w')
        high.write('2')
        high.close()
        highread=open('high.txt', 'r')
        text=highread.read()
        print("Your new score of", text)
        highread.close()
    highread.close()
else:
    print("Wrong!")

随时请求进一步澄清。