2013-06-24 25 views
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 

任何幫助從哪裏開始這將不勝感激。由於

+0

'else:None'的含義是什麼? –

+0

你也忘了括號後'make_file.close' **()** –

+0

我是相當新的這個和「其他:無」我把那裏,因爲我認爲它會拋出了一個錯誤。我看到我忘了(),但它沒有導致程序失敗。 –

回答

1

Python有內置方法f或寫入可用於寫入文本文件的文件。

​​
+0

因此,您可以將存儲在元組中的信息寫入文本文件。真棒!乾杯 –

+0

嘿,這工作就像一個夢想!謝謝!!!!!我正要哭泣。 –

+0

沒問題!樂意效勞! – xgord

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') 
... 
+0

啊,好吧,這給了我一些好主意,謝謝。 –

+0

很高興提供幫助。乾杯! –

+0

我建議使用'with'關鍵字而不是僅僅打開文件。這確保它將被正確關閉,而不需要'try-except'塊。 – thegrinner

3

我認爲你應該使用with關鍵字。

你會找到對應於你想要做什麼here例子。

with open('output.txt', 'w') as f: 
    for l in ['Hi','there','!']: 
     f.write(l + '\n') 
+0

好吧,我會做一些閱讀,謝謝你的幫助。抱歉,我無法點亮所有這些解決方案。 –

+1

不是我關心綠色的蜱,而是「帶」是要走的路。 – Josay

+0

因此,你在這裏的聲明寫嗨 - 那裏 - !到output.txt中?如果是這種情況,我可以用它從嵌套列表寫入文本文件嗎? –