如何在文本文件python中保存数据

时间:2015-03-24 01:04:35

标签: python

所以我正在制作一个简单的随机数字游戏,即使程序关闭并再次运行,我也想保存玩家的高分。我希望计算机能够向玩家询问他们的名字,在文本文件中搜索名称数据库,并提高他们的高分。然后,如果它们的名称不存在,请在数据库中创建一个名称。我不确定如何做到这一点。我是一个菜鸟程序员,这是我的第二个程序。任何帮助将不胜感激。

以下是随机数游戏的代码:

import random
import time

def getscore():
    score = 0
    return score
    print(score)


def main(score):
    number = random.randrange(1,5+1)
    print("Your score is %s") %(score)
    print("Please enter a number between 1 and 5")

    user_number = int(raw_input(""))

    if user_number == number:
        print("Congrats!")
        time.sleep(1)
        print("Your number was %d, the computers number was also %d!") %(user_number,number)
        score = score + 10
        main(score)

    elif user_number != number:
        print("Sorry")
        time.sleep(1)
        print("Your number was %d, but the computers was %d.") %(user_number, number)
        time.sleep(2)
        print("Your total score was %d") %(score)
        time.sleep(2)
        getscore()

score = getscore()
main(score)
main(score)

编辑: 我正在尝试这个并且它似乎正在工作,除了当我尝试用变量替换字符串时,它会出错:

def writehs():
    name = raw_input("Please enter your name")
    a = open('scores.txt', 'w')
    a.write(name: 05)
    a.close()

def readhs():
    f = open("test.txt", "r")
writehs()
readhs()

3 个答案:

答案 0 :(得分:2)

with open('out.txt', 'w') as output:
    output.write(getscore())

使用这样的with是处理文件的首选方法,因为它会自动处理文件关闭,即使是异常也是如此。

此外,请记住修复您的getscore()方法,使其不会始终返回0.如果您希望得分print,请将print语句放在return之前{1}}。

答案 1 :(得分:1)

要使用python编写文件,请执行以下操作:

file2write=open("filename",'w')
file2write.write("here goes the data")
file2write.close()

如果您想阅读或附加文件,只需更改' w'为了' r'或者' a'分别

答案 2 :(得分:0)

首先,你应该清楚地问你的问题以便其他人理解。要在文本文件中添加文本,你总是可以使用open内置函数。就像这样。

>>> a = open('test.txt', 'w')
>>> a.write('theunixdisaster\t 05')
>>> a.close()

多数民众赞成。如需进一步帮助,请尝试本网站。 http://www.afterhoursprogramming.com/tutorial/Python/Writing-to-Files/

您还可以使用for循环来打印所有分数。 自己尝试这个。它宁愿很有趣。

推荐的方式

好像推荐的方式一样使用它:

>>> with open('test.txt', 'w') as a:
        a.write('theunixdisaster\t 05')

确定该文件将关闭。

使用变量

>>> name = sempron
>>> with open('test.txt', 'w') as a:
        a.write('%s: 05' % name)

现在尝试调用它。我使用python 3.4.2。所以,如果你遇到错误,请尝试检查字符串格式与你使用的python版本是否有任何区别。