2013-05-16 6 views
0

여러 프로그램/사용자가 동일한 파일을 읽고 쓸 수있게하려면 어떻게해야합니까?동일한 파일의 다중 편집

사용 사례는

나는 CSV 파일을하고 난 더 많거나 적은 실시간으로 편집 할 여러 사용자가 사용하려는. 나는 파일에 작은 변화를 쓰고 읽을 수 있기를 원하지만, 전체 파일이 부주의 한 영혼으로 바뀌면 내 프로그램에로드 된 데이터를 새로 고침 할 수 있기를 원합니다.

배경

나는 타임 스탬프가 변경되거나 파일이 다른 프로그램/사용자가 덮어 쓸 경우 특정 프로그램 파일을 새로 고칠 것을 보았다. (필자는 서로 다른 기능을 사용하는 두 명의 다른 편집기에서 파일을 편집 할 때이 방법을 사용했습니다.)

집에 일

나는이가 처음 열릴 때 원본 파일을 복제하는 내 응용 프로그램을 필요로 상상할 것입니다. 이 방법으로 원본에 대한 모든 업데이트를 복사본과 비교하여 현재 데이터에 수정 사항을 적용 할 수 있습니다. 그런 다음 임시 파일이 업데이트되면 기본 파일을 다시 쓸 수 있습니다. 각 사용자/프로그램은 업데이트 된 파일을 다시로드 할 수 있습니다. 이것은 합리적인 방법인가/모범 사례인가 아니면 여기에서 끝내는 것이 더 나은 방법인가?

다른 방법으로 파일을 캐시 할 수 있습니다.

파일을 차단/잠그는 것이 더 좋습니까? 경쟁 조건에주의해야합니까?

환경

파이썬에서이 작업을 수행 할 계획이다. 예 : 플랫폼 독립성. 리눅스, 윈도우와 맥 (비싼 리눅스).

관련

이이 here, herehere 관련되어 보인다.

+0

왜 csv 파일입니까? 데이터베이스가 필요해. –

+2

아, 여기있는 방법이 데이터베이스라고 생각합니다 ... – reptilicus

+2

데이터베이스가 좋지 않으면 기존 [공동 실시간 에디터] (http://en.wikipedia.org/)를 사용 해본 적이 있습니까?/wiki/Collaborative_real-time_editor) 또는 동시 [버전 제어] (http : //en.wikipedia.org/wiki/Revision_control) 시스템? 처음부터 무언가를 쓰는 것보다 훨씬 간단합니다. – Aya

답변

0

편집의 강도가 낮 으면 csv 파일로 가져올 수 있지만 사용자가 서로 편집 내용을 덮어 쓰지 않도록 전체 파일을 잠그면됩니다. 편집이 적용될 때까지 파일을 잠글 수없는 경우 전체 파일 대신 특정 레코드가 잠기는 DB를 사용하는 것이 좋습니다.

0

사용자가 파일을 열면 실제로 file_userid-1.csv 복사본을 제공하고 사용자가 작업을 덮어 쓰지 않도록 해당 파일을 편집 할 수있게합니다. 사용자가 저장하면 원래의 것을 덮어 씁니다. 그 사이에 현재 사용자가 수정 한 동안 원래의 코드가 수정되었는지 확인할 수있는 고리가 있습니다. 원본 파일이 diff 또는 내가 모르는 것을 수정 한 경우.

당신이 필요로하는 것은 svn이나 git이 어떻게 작동하는지에 대한 아주 작은 복제품이라고 생각합니다.