2012-08-31 4 views
0

게임에서 Dropbox와 같은 일부 사이트로 파일을 백업하는 약간의 프로그램을 만들고 있지만 수동으로 백업하려는 모든 게임을 하나씩 추가하는 대신. 나는 게임의 파일들이 무엇인가에 관한 정보를 추가 할 작은 마법사를 만들고 싶다.파이썬 응용 프로그램에 대한 데이터 저장

예를 들어, 나는 minecraft와 같은 게임을 백업하고 싶다고 말합니다. 마법사가 게임 실행 파일, 선택 아이콘 및 백업 할 정보 유형과 같은 정보를 묻기를 원합니다. 처음 프로그램을 시작하면 사용자에게 검색 상자를 보여주고 싶습니다. 게임을 선택하면 프로그램이 존재하는지 확인하고 확인란을 사용하여 원하는 인터페이스를 제공합니다.

기본적으로 정보를 저장하기위한 데이터베이스가 있는지 묻습니다.이 정보는 단일 데이터베이스에서 복사해야합니다. 그러나, 어떤 사람이 내 프로그램을 다운로드하고 그들이 가지고있는 게임을 목록에 추가하면, 그 정보를 단일 데이터베이스에서 복사해야합니다.

내가 설명하는 일에 끔찍한 생각하면 미안 해요 :/

+0

무엇을 시도 했습니까? 또한 특정 질문으로 좁혀보십시오. –

+0

정보를 저장하는 데이터베이스가 있는지 궁금 해서요. 프로그램의 각 사용자는 더 큰 데이터베이스에서 복사하는 데 필요한 정보 만 포함하는 로컬 데이터베이스를 만들 것입니다. – user1155844

+2

a) [pickle] (http://docs.python.org/library/pickle.html)을 사용하여 직렬화 된 Python 객체를 저장할 수 있습니다. b) [sqlite3]과 같은 데이터베이스를 사용할 수 있습니다 (http://docs.python.org /library/sqlite3.html) 또한 배포 할 수있는 정보를 저장하거나 c) 프로그램과 관련된 정보를 저장하는 고유 한 형식을 제공해야합니다. 더 많은 정보가 없으면 어느 것이 최선의 선택인지 말할 수 없습니다. –

답변

3

사용 sqlite3를 그냥 피클 http://docs.python.org/library/pickle.html

import pickle 
try: 
    with open("settings.dat") as f: 
     print pickle.load(f) 
except IOError: 
     print "No Settings Found" 
user_data = {"bob":{"path1":"some/path","otherVar":"56"}, 
       "paul":{"url":"http://docs.python.org/library/sqlite3.html"} 
       } 
with open("settings.dat","wb") as f: 
     pickle.dump(f) 

모두 이름 http://docs.python.org/library/sqlite3.html

import sqlite3 
db = sqlite3.connect("settings.db") 
c = db.cursor() 
c.execute("""CREATE TABLE IF NOT EXISTS userdata (
        user_name TEXT, 
        settings1 TEXT, 
        settings2 TEXT 
        );""") 
c.execute("INSERT INTO user_data (user_name,settings1,settings2) VALUES (?,?,?)",("bob","some_Value","some Other Value") 
db.commit() #save it 
c.execute("SELECT * FROM userdata WHERE user_name=?",GetUserName()) 
print c.fetchall() 

와 유저 데이터를 저장하거나 사용 이것들은 나에 의해 테스트받지 않았다. .. 그들은 나의 머리의 꼭대기에 단지있다. 그리고 사소한 실수를 포함 할지도 모른다

+0

고맙습니다 : D, 나는 그런 식으로 피클 사용을 생각하지 않았습니다. – user1155844

관련 문제