0

好的,我们开始吧,我整天都在看这个,我快疯了,我以为我已经完成了艰苦的工作,但现在我被卡住了。我正在为游戏制作一个高分列表,并且我已经创建了一个二进制文件来按顺序存储分数和名称。现在我必须做同样的事情,但将分数和名称存储在文本文件中。

这是二进制文件部分,但我不知道从哪里开始使用文本文件。

def newbinfile():

    if not os.path.exists('tops.dat'):
        hs_data = []
        make_file = open('tops.dat', 'wb')
        pickle.dump(hs_data, make_file)
        make_file.close     
    else:
        None


def highscore(score, name):

    entry = (score, name)

    hs_data = open('tops.dat', 'rb')
    highsc = pickle.load(hs_data)
    hs_data.close()

    hs_data = open('tops.dat', 'wb+')
    highsc.append(entry)
    highsc.sort(reverse=True)
    highsc = highsc[:5]
    pickle.dump(highsc, hs_data)
    hs_data.close()

    return highsc

任何有关从哪里开始的帮助将不胜感激。谢谢

4

3 回答 3

3

我认为你应该使用with关键字。

您会在此处找到与您想做的事情相对应的示例。

with open('output.txt', 'w') as f:
    for l in ['Hi','there','!']:
        f.write(l + '\n')
于 2013-06-24T17:45:01.243 回答
2

从这里开始:

>>> mydata = ['Hello World!', 'Hello World 2!']
>>> myfile = open('testit.txt', 'w')
>>> for line in mydata:
...     myfile.write(line + '\n')
... 
>>> myfile.close()           # Do not forget to close

编辑 :

一旦你熟悉了这一点,就使用with关键字,它保证文件处理程序超出范围时关闭:

>>> with open('testit.txt', 'w') as myfile:
...     for line in mydata:
...         myfile.write(line + '\n')
...
于 2013-06-24T17:42:55.660 回答
1

Python 具有用于写入文件的内置方法,您可以使用这些方法写入文本文件。

writer = open("filename.txt", 'w+')
# w+ is the flag for overwriting if the file already exists
# a+ is the flag for appending if it already exists

t = (val1, val2) #a tuple of values you want to save

for elem in t:
    writer.write(str(elem) + ', ')
writer.write('\n') #the write function doesn't automatically put a new line at the end

writer.close()
于 2013-06-24T17:43:31.867 回答