2011-04-27 124 views
1

我正在用Python編寫遊戲,並且已經到了需要拯救玩家進度的方式。當玩家退出遊戲時,我正在考慮讓腳本創建一個文本文件並寫幾行(用於存儲統計變量和房間號)。但我也需要它來檢查該文件是否在啓動時退出,如果是,則將存儲的值應用於相應的變量。任何人都可以幫忙嗎?Python遊戲保存文件

回答

0
import os 
if os.path.exists('yourplayerfile'): 
    with open('yourplayerfile') as f: 
     # work with f 
with open('yourplayerfile','a') as f: 
    # update f 

這是您必須使用的提綱。

+0

感謝您的幫助! – 2011-04-27 04:57:46

+0

你不覺得檢查文件是否存在有點不必要?畢竟,'a'會創建文件,如果它不存在。 – user225312 2011-04-27 05:03:40

+0

A - 我認爲OP問他想在啓動過程中檢查文件。我應該把它當作是編輯它的一部分。 – 2011-04-27 06:50:49

4

兩個不同的問題在這裏:

  1. 什麼存儲在文件中,以及如何將其存儲
  2. 時存儲的邏輯,當加載

第一個問題是簡單因爲它更通用。這裏有幾個很好的選擇:一個是使用Python的ConfigParser類,用於Windows .ini - 類似配置文件。或者,您可以使用pickle來簡單地轉儲某種配置/設置數據結構(可能是嵌套字典)。然後是內置的SQLite綁定。還有其他的選擇 - 這一切都取決於你想要的複雜程度。

第二個問題更具體到您的應用程序。您可以嘗試在啓動時打開配置文件,如果它在那裏,請閱讀它的內容。稍後,您可以定期將設置/進度存儲在其中。一個忠告:在任何時候都要始終保持一組數據結構中的一組設置爲一致的數據結構 - 即使只有部分設置在配置文件中(因爲某些原因)出現在配置文件中,也需要使用默認值您的設置。

+1

+1爲泡菜!這可能是現在的最佳選擇。 – 2011-04-27 05:26:57

0

我建議你保存在sqlite或一些像這樣的東西......但我不明白你的問題在哪裏?保存文件或讀取文件?

try: 
    f=open('/tmp/workfile', 'w') 
    # i find file 
except: 
    #there is no file 
<open file '/tmp/workfile', mode 'w' at 80a0960> 

... 閱讀文檔http://docs.python.org/release/2.5.2/tut/node9.html

+0

不,請使用'打開(文件)爲f'代替。它更清潔。 – user225312 2011-04-27 05:03:07

+0

它需要做的是創建一個文件來存儲決定玩家進度的變量,如果該文件已經退出,還需要檢查啓動時間,如果是這樣,則將數據應用到玩家進度變量 – 2011-04-27 05:03:37

+0

嘗試檢查您的文件,如果劑量存在執行除外 – Efazati 2011-04-27 05:15:39