회원 로그인
|
Python for Maya - 3. pickle (지속 모듈-파일 관리)
기반으로 복습하는 차원에서 재정리한 것입니다.
pickle은 외부에 데이터를 프로그램이 종료되었어도 데이터를 잃지 않고 저장해두어 나중에 다시 읽어 사용할 수 있도록 하는 모듈이다.
object들을 생성한 후 일부 object를 선택해 준다.
import maya.cmds as cmd import pickle f = open('c:/sel_obj.txt', 'w') pickle.dump(cmd.ls(sl=1), f) f.close()위 code를 실행하면 C드라이브에 선택된 object 데이터가 sel_obj.txt가 생성되어 저장한 걸 알 수 있다.
import pickle # pickle 모듈을 사용하기 위해 import 한다.
f = open('c:/sel_obj.txt', 'w') # 파일을 열거나 저장할 때는 항상 파일 변수 = open('파일명', '형태') 함수를 사용하여 파일관리의 시작을 알려주고, c드라이브에 sel_obj.txt 파일명으로 'w' (write) 쓰게 되고 변수 f (파일 변수)에 저장한다는 것이다.
pickle.dump(cmd.ls(sl=1), f) # cmd.ls(sl=1)으로 선택된 object를 pickle.dump( 데이터, 파일 변수 ) 함수로 실질적으로 저장하게 된다.
f.close() # 파일을 다 사용하였으면 꼭 파일을 닫아줘야 한다.
정리해 보면
파일 변수 = open ('파일명', 형태)으로 파일 시작을 알리고 (형태 - 'w' 저장, 'r' 읽기)
pickle() 함수로 파일을 저장(dump)할지 읽을지(load), 다음 명령어들을 수행 후
파일 변수.close()로 파일 끝을 내면 된다.
저장된 파일은 ascii로 저정되어서 메모장에서도 열기와 수정이 가능하다.
이제 파일로 저장된 데이터를 불러와 다시 object를 선택해 보자.
f = open('c:/sel_obj.txt', 'r') cmd.select(pickle.load(f)) f.close() f = open('c:/sel_obj.txt', 'r') # 다시 파일을 open하게 하고, 'r' 읽기를 사용한다. cmd.select(pickle.load(f)) # pickle.load(파일변수)로 읽은 것을 select 하게 된다. f.close() # 파일을 닫는다.
────────────────────────────────────────────
source : http://cafe.naver.com/digitaldream/432 - 'Maya Python 시작하기' 3) pickle
댓글 0개
| 엮인글 0개
466개(1/24페이지)
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
마야 뷰포트 네비게이션 팁 | 푸딩뱃살 | 43576 | 2020.04.06 17:22 | |
Maya 버전 별 Python 버전 | 푸딩뱃살 | 64835 | 2014.01.08 17:59 | |
464 | [Dev] Autodesk Maya Devkit 다운로드 | 푸딩뱃살 | 699 | 2023.01.28 14:28 |
463 | [Base] (해결 중) modules 환경설정 중 | 푸딩뱃살 | 641 | 2022.11.09 11:47 |
462 | [Script] pymel 딕셔너리형 사용 시 KeyError | 푸딩뱃살 | 856 | 2022.11.07 12:08 |
461 | [오류] Building Numpy for Maya Python 2.7.x | 푸딩뱃살 | 597 | 2022.10.23 14:38 |
460 | [Base] 뷰포트에서 조절자가 안 보일때 | 푸딩뱃살 | 779 | 2022.10.13 15:47 |
459 | [Rigging] mirror joints 사용 시 유의 사항 | 푸딩뱃살 | 795 | 2022.10.04 10:46 |
458 | [Script] 2022에서 enum34 모듈 설치 금지 | 푸딩뱃살 | 605 | 2022.08.17 18:08 |
457 | [Script] pymel 예제 | 푸딩뱃살 | 620 | 2022.07.05 19:20 |
456 | [Script] 인코드 / 디코드 - 2.7 한글 사용 | 푸딩뱃살 | 899 | 2022.03.08 17:52 |
455 | [Dev] ui 없이 mayapy로 자동화 | 푸딩뱃살 | 701 | 2022.02.17 13:56 |
454 | [Dev] mayapy로 ui파일 py로 | 푸딩뱃살 | 526 | 2022.02.15 18:20 |
453 | [오류] Error : MayaBonusTools | 푸딩뱃살 | 913 | 2022.01.21 17:52 |
452 | [오류] Error: ModuleNotFoundError | 푸딩뱃살 | 771 | 2022.01.21 16:24 |
451 | [Dev] mayapy | 푸딩뱃살 | 644 | 2022.01.19 20:08 |
450 | [Base] function selCom at 0x7f29c5c04aa0 | 푸딩뱃살 | 612 | 2022.01.19 17:24 |
449 | [Base] wireframe on shaded 단축키 만들기 | 푸딩뱃살 | 912 | 2022.01.04 10:55 |
448 | [오류] OpenCL Error | 푸딩뱃살 | 520 | 2021.12.28 01:40 |
447 | [Script] Easily Translate MEL Commands to Python | 푸딩뱃살 | 825 | 2021.12.02 11:22 |
446 | [Base] output window 띄우지 않기 | 푸딩뱃살 | 821 | 2021.11.24 21:44 |
445 | [Rigging] shapeEditorManager 삭제 안됨 | 푸딩뱃살 | 891 | 2021.11.12 23:30 |