2012-01-02 4 views
10

나는 파이썬의 선반/데이터베이스에 관한 약간의 조언을 원합니다.파이썬 쉘브 크로스 플랫폼 사용하기

문제 : 나는 윈도우 7 내가 파이썬 3.2, 맥 OS 10.7를 사용에 사용하려는, 맥에서 작성된 데이터베이스를 가지고 있고, 내가 열 때 7

승리와 Mac에서 내 선반을 저장 모두 좋고 잘합니다. 나는 ".db"확장자를 가진 파일을 얻습니다. 내 창 - 파이썬에서 인식되지 않습니다. 그러나 나는 PC에 새로운 db를 만들고 ".bak, dat, .dir"확장자로 파일을 얻을 수 있습니다.

나는 PC의 파이썬이 내 맥 파이썬이 사용하는 기본 데이터베이스가 없다고 추측하고있다.

나는 여기에 올바른 방법입니다 확실하지,하지만 어쩌면 내가 할 수 :

변경 내 시스템이 사용하는 기본-dB? 내 Mac-Python에서 사용하는 db를 찾아서 PC에 추가하십시오. 데이터를 모두 저장하는 방식을 변경합니까?

속도는 문제가되지 않으며 데이터 크기는 몇 메가 바이트이며 자주 액세스하지 않습니다.

도움의 손길을 찾으십시오. 미리 감사드립니다 - 어떤 도움을 많이 주시면 감사하겠습니다. 내가 뭐하는 거지

/Esben

: 그것은 꽤 정직, 내가 작업 DB 파일은 Mac에서 "mydb.db"라고 한거야하지만 난 때 엽니 다

Import shelve 
db = shelve.open('mydb') 
entries = db['list'] 
db.close 

PC의-파이썬에서 내가 얻을 :

역 추적 (마지막으로 가장 최근에 호출) : 파일 "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/dbm/ 초기화 평" , 라인 107, 여기서 IOError : [Errno 2] 해당 파일이나 디렉토리가 없습니다. 'mydb.pag'

+0

Windows에서 인식되지 않는다고 할 때 어떤 의미입니까? 파일을 어떻게 열려고합니까? 몇 가지 예제 코드를 보여줄 수 있습니까? –

답변

1

sqlite3 모듈은 지원되는 교차 플랫폼 모듈입니다. 다른 많은 언어 및 도구로

피클 모듈은 더 간단하지만 크로스 플랫폼입니다. 당신은 그것을 객체에주고 그것을 파일에 덤프합니다. sqlite와 같은 테이블이나 행이 없습니다.

+0

피클은 아마도 갈 길입니다. 나는 그걸 하나의 파일에 담았 으면 좋겠어. 파이썬이 특정 플랫폼을 쉘브 용으로 사용하도록 강요 할 수 없습니까? 즉, 크로스 플랫폼입니까? – Esben

+1

Shelve는 이미 후드 아래에서 산세를 사용합니다. –

+0

좋아, 그럼 아마 같은 문제가 생길거야. – Esben

2

답장을 보내 주셔서 감사합니다.

나는 파이썬의 선반이 쉽게 특정 DB를 사용하도록 강요되지 않는 것 같지만 피클은 매력처럼 작동합니다. 적어도 Mac OS에서 -> windows 7.

그래서 짧은 대답 : 이식성을 원한다면 선반을 사용하지 말고 직접 피클을 사용하십시오.

/Esben

+0

예 피클 작품처럼 매력, 나도 같은 경험을했다 ... –